一次完整的http請求主要包含4步:
1. 輸入域名,DNS(域名系統)進行域名解析,得到IP地址
2. 客戶端和服務器通過三次握手建立連接
3. 連接建立之后,客戶端將包裝好的http請求傳輸到服務器,服務器處理后將數據返回給客戶端
4. 客戶端和服務器之間不再有數據傳輸后,發起四次揮手斷開連接
* 三次握手:為了防止服務器開啟一些無用的連接
1. 客戶端發送syn=1告訴服務器需要聯機,并發送一個隨機生成的序列號seq=x
2. 服務器接收到消息,回復客戶端syn=1和一個確認碼ack=x+1,并發送一個隨機生成的序列號seq=y
3. 客戶端接受到消息,再次回復服務器一個確認碼ack=y+1,并發送一個隨機生成的序列號seq=z
* 四次揮手:由于數據傳輸是雙向的,每個方向都必須單獨進行關閉
1. 客戶端發送fin=1告訴服務器斷開連接,并發送一個隨機生成的序列號seq=x
2. 服務器收到消息,回復客戶端一個確認碼ack=x+1,并發送一個隨機生成的序列號seq=y,客戶端進入等待狀態
3. 服務器發送fin=1告訴客戶端斷開連接,并發送一個隨機生成的序列號seq=z
4. 客戶端收到消息,回復服務器一個確認碼ack=z+1,并發送一個隨機生成的序列號seq=r,斷開連接