概述: web
HTTP協議又稱超文本傳輸協議
HTTP(HyperTextTransfer Protocol)。HTTP 是一個無狀態
(意味着客戶端跟服務器不能長時間處於鏈接狀態,一旦請求Request
-> 響應Response
過程完成,鏈接就會關閉)的應用層協議,基於C/S
模式,它使用 TCP 鏈接進行可靠的傳送,可以在萬維網上進行文本、聲音、圖像、視頻等各類信息的交換。瀏覽器
HTTP鏈接過程服務器
HTTP基於C/S模式,那麼就有HTTP客戶端和 HTTP 服務器兩個部分,該過程主要由如下7個步驟組成:網絡
創建TCP鏈接
在HTTP工做開始前,web瀏覽器向服務器發起鏈接請求,並創建創建。http協議是比tcp協議更高層次的應用層協議,根據規則,只有低層的協議創建鏈接才能進行數據通訊。所以首先須要創建tcp鏈接,tcp鏈接的端口號通常是80.下面是創建鏈接的三次握手tcp
第一次
創建鏈接時,客戶端A向服務端B發送請求報文段,這時首部中的同步位SYN =1,同時選擇一個初始序號seq= x.TCP規定SYN=1報文段不能攜帶數據,可是要消耗一個序號。這時,TCP客戶進程進入SYN-SENT(同步已發送)狀態,等待服務器確認。
第二次
服務器收到請求報文後,如贊成鏈接,則向A發送確認,同時本身也發送一個確認報文段,確認報文段中SYN和ACK都置1,確認號ack = x+1,同時本身也爲本身選擇一個初始序號seq =y。注意,這個報文段也不能攜帶數據,但一樣要消耗掉一個序號。這時TCP服務器進程進入SYN-RCVD(同步收到)狀態。
第三次
客戶端A收到B的確認後,還要向B給出確認報文段。確認報文段的ACK=1,確認號ack =y+1,而本身的序號seq=x+1.此包發送完畢,客戶端和服務器進入ESTABLISHED(TCP鏈接成功)狀態,完成三次握手。
詳情參考這篇文章url