tcp建立連接(三次握手)

tcp連接
當你的頁面僅支持http1.x的時候,瀏覽器進程可能會和服務器建立多個tcp連接。用不同的端口號區(qū)分tcp連接。
TCP報頭中的源端口號和目的端口號同IP數(shù)據報中的源IP與目的IP唯一確定一條TCP連接。
tcp斷開連接

tcp斷開連接,服務器主動斷開

殺死瀏覽器進程,瀏覽器主動斷開
斷開連接分兩種情況:
- 一種情況是正常瀏覽網頁,提出結束請求的是服務器,這種情況下一般都是進行正常的keep-alive,然后服務器提起正常的請求斷開連接,四次揮手。
- 另一種情況就是用戶主動殺死瀏覽器進程,可能就只有三次揮手了。服務器被動斷開連接的時候,并且沒有可傳輸?shù)臄?shù)據的時候,可能會將Server對Client的FIN報文的確認和Server的FIN一起發(fā),這可能是三次揮手的原因
https建立連接

https進行連接
首先還是正常的tcp進行連接。
然后進行的就是tls的握手:
- client hello 這一步主要是向服務器發(fā)送客戶端支持的http版本,包括http1.x 或者http2等,還有就是瀏覽器支持的加密的各種信息供服務端選擇。
- Server Hello 選擇client hello支持的各種協(xié)議,當然只是選擇一個。
- certificate 服務器向瀏覽器發(fā)送證書鏈。
- Sever Hello Done 服務器向瀏覽器發(fā)送完畢,等待瀏覽器發(fā)送。
- Client Key Exchange 向服務器發(fā)送加密的相關方式
上面只是對各種包的一個大概的說明。