1. 程式人生 > >HTTP協議結構

HTTP協議結構

http服務 cookies delete 過程 管線 傳輸 引入 clas blog

  1. 通信:HTTP協議用於客戶端和服務器端之間的通信。請求訪問資源的為客戶端,提供資源響應的是服務器端。應用HTTP協議時,必定是一端為客戶端,一端為服務端角色。規定:請求從客戶端發出,由服務端響應請求並返回結果。也就是說,請求一定是從客戶端開始建立通信。
  2. 不保存狀態的HTTP:HTTP是一種不保存狀態,即無狀態(stateless)協議。它不會對請求和響應之間的通信狀態進行保存,協議對已發送過的請求和響應都不做持久化處理。
  3. 請求通過URI定位資源:客戶端發送請求請求特定資源時需要將URI包含在請求報文中,請求的方法有很多:GET,POST,在後面會提及。另外,可以對服務器本身發起請求,用一個*替代URI,這樣的做法是查詢HTTP服務端支持的HTTP方法種類
  4. HTTP請求方法:請求特定URI時,方法的作用在於指定請求的資源能按照我們的期望產生某種行為,有:
    GET請求資源,POST傳輸實體主體,PUT傳輸文件,HEAD獲得報文首部,DELETE刪除文件,OPTION詢問支持方法,TRACE追蹤路徑,CONNECT要求使用隧道協議連接代理
  5. HTTP的持久連接 HTTP keep-alive:HTTP一開始的設計是每進行一次通信過後都要斷開一次再重新連接造成通信量開銷。持久連接:只要任意一段不斷開連接就保持TCP連接狀態。好處在於:減少了重復建立和斷開的通信量開銷。
  6. HTTP管線化(pipelining):在持久連接的基礎上,實現了不用等待響應也可以直接發送下一個請求,這樣就相當並發多個請求。原因就在於客戶端和服務端之間未曾斷掉通信。
  7. HTTP下使用Cookies技術:由於HTTP的無狀態協議,不對之前的請求和響應保存。所以通信無法根據上一次的狀態來進行本次的處理。例子:無法管理登錄狀態,從一個頁面跳轉另一個頁面(同一個站點內)。為了解決這個問題,引入Cookie技術。
  8. Cookie技術:通過在請求報文和響應報文中寫入cookie信息來控制客戶端的狀態。
    過程:服務端發送的響應報文中含有一個set-cookie首部字段,Cookie會通知客戶端保存Cookie。下一次客戶端再次往該服務器發送請求時,會自動在請求報文中添加該Cookie值。服務端接收到客戶端發來的Cookie,從記錄中獲得該客戶端最後一次的狀態信息

歸納總結:

  1.HTTP是無狀態協議,因此需要Cookie技術。

  2.Cookie技術是在服務端和客戶端之間的報文中傳遞

  3.HTTP為了提高效率實現了持久連接。在持久連接的基礎上,有了HTTP管線化技術。

  4.請求方法有很多,各自作用不一樣。我們平時主要就用POST,GET。

  5.在HTTP協議中,規定請求必須由客戶端發出,服務端處理返回結果。

HTTP協議結構