tcp建立連接(三次握手)
當(dāng)你的頁面僅支持http1.x的時(shí)候匆瓜,瀏覽器進(jìn)程可能會和服務(wù)器建立多個(gè)tcp連接缩举。用不同的端口號區(qū)分tcp連接赶促。
TCP報(bào)頭中的源端口號和目的端口號同IP數(shù)據(jù)報(bào)中的源IP與目的IP唯一確定一條TCP連接调缨。
tcp斷開連接
斷開連接分兩種情況:
- 一種情況是正常瀏覽網(wǎng)頁残揉,提出結(jié)束請求的是服務(wù)器,這種情況下一般都是進(jìn)行正常的keep-alive芋浮,然后服務(wù)器提起正常的請求斷開連接抱环,四次揮手。
- 另一種情況就是用戶主動(dòng)殺死瀏覽器進(jìn)程纸巷,可能就只有三次揮手了镇草。服務(wù)器被動(dòng)斷開連接的時(shí)候,并且沒有可傳輸?shù)臄?shù)據(jù)的時(shí)候瘤旨,可能會將Server對Client的FIN報(bào)文的確認(rèn)和Server的FIN一起發(fā)梯啤,這可能是三次揮手的原因
https建立連接
首先還是正常的tcp進(jìn)行連接。
然后進(jìn)行的就是tls的握手:
- client hello 這一步主要是向服務(wù)器發(fā)送客戶端支持的http版本存哲,包括http1.x 或者h(yuǎn)ttp2等因宇,還有就是瀏覽器支持的加密的各種信息供服務(wù)端選擇七婴。
- Server Hello 選擇client hello支持的各種協(xié)議,當(dāng)然只是選擇一個(gè)察滑。
- certificate 服務(wù)器向?yàn)g覽器發(fā)送證書鏈打厘。
- Sever Hello Done 服務(wù)器向?yàn)g覽器發(fā)送完畢,等待瀏覽器發(fā)送贺辰。
- Client Key Exchange 向服務(wù)器發(fā)送加密的相關(guān)方式
上面只是對各種包的一個(gè)大概的說明户盯。