詳解HTTP的3次握手和4次揮手

【HTTP與TCP/IP】
我們知道網絡由下往上分爲7層:物理層、數據鏈路層、網絡層、傳輸層、會話層、表示層和應用層。
TPC/IP協議是傳輸層協議,主要解決數據如何在網絡中傳輸。
HTTP是應用層協議,主要解決如何包裝數據。
所以說HTTP是基於TPC/IP的,與HTTP類似也是基於TPC/IP的還有FTP啊這類的應用層協議。

【TCP/IP三次握手建立連接】
 

如上圖,客戶端首先發起第一次握手,向服務端示好(我要傳一些數據給你);
服務端聽到後如果表示可以接受數據,則向客戶端發起第二次握手(這次握手錶示,我能接受你的數據哦,同時由於TCP/IP是全雙工的,服務端的這次握手也是在詢問,你能接受我返回給你的數據嗎?);
接着客戶端發起第三次握手(告訴服務端,是的,我也能接受你返回給我的數據,OK,這下兩個人都放心了,連接建立成功)。

【TCP/IP四次揮手釋放連接】
 

TCP/IP是全雙工的,每個方向都必須單獨進行關閉。有一方完成它的數據發送任務後就能發送一個FIN來終止這個方向的連接。
比如客戶端給服務端發送一個FIN,告訴服務端,我再也沒有數據要傳給你啦,這是第一次揮手;
服務端收到後返回一個ACK告訴客戶端,好的,知道啦,這是第二次揮手。客戶端收到確認後就可以關閉往服務端那邊的數據傳輸通道了,這個時候服務端仍然可以往客戶端繼續發送數據。
待服務端也再沒有數據要往客戶端發送時,就也發一個FIN到客戶端,告訴它,我也沒啥要傳給你了,這是第三次揮手。
客戶端得知後在返回一個ACK告訴服務端,好的,收完了,服務端也就可以安心關閉往客戶端的數據傳輸通道了,這是第四次揮手。自此雙向的傳輸通道都已關閉,連接成功釋放。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章