閱讀906 返回首頁    go 阿裏雲 go 技術社區[雲棲]


HTTP協議

HTTP協議

HTTP,Hyper Text Transport Protocol,超文本傳輸協議。是基於TCP連接的應用層協議。它定義了瀏覽器和web服務器之間如何通信。

為了描述互聯網資源的位置,我們使用URL,Uniform Resource Locator,統一資源定位符。

格式為<協議>:://<主機>:<端口>/<路徑>   HTTP的默認端口號是80,通常可省略。

HTTP協議是無狀態的。也就是說,客戶多次訪問服務器時,服務器並不記得這個客戶曾經訪問過。

cookie

HTTP無狀態的特性可以簡化服務器工作,但實際使用中,一些站點希望識別用戶,比如設置偏好、實現購物車功能等。這就用到Cookie機製。

當用戶張三瀏覽某個使用Cookie的網站時,該網站的服務器就為張三生成一個唯一的識別碼,添加到服務器數據庫中。接著在給張三的HTTP響應報文中,添加一個叫做“Set-cookie”的首部行。例: Set-cookie:123456。當張三收到這個響應後,瀏覽器就會在Cookie文件中添加<網站名,cookie=123456>。以後張三再瀏覽這個網站,瀏覽器就會提取出cookie識別碼,放在HTTP請求報文的cookie首部行中。

這樣,web服務器就能識別張三了,根據服務器記錄的他的訪問行為,做一些精準的廣告投放。

cookie隻是本地的小小文本文件,不是可執行程序,不會對計算機有安全隱患。

HTTP請求報文

一個HTTP請求報文由請求行(request line)、請求頭部(header)、空行和請求數據4個部分組成,下圖給出了請求報文的一般格式。


請求行
請求方法有GET、POST、HEAD、PUT、DELETE、OPTIONS、TRACE、CONNECT。
GET——把數據追加在url之後;POST——放在請求數據中。
請求頭部
通知服務器有關客戶端請求的信息,典型的請求頭有:
User-Agent:瀏覽器類型。
Accept:客戶端可識別的內容類型列表。
請求主體
這部分不是必需的。

HTTP應答報文


應答行

狀態碼意義。

1xx:指示信息--表示請求已接收,繼續處理。

2xx:成功--表示請求已被成功接收、理解、接受。

3xx:重定向--要完成請求必須進行更進一步的操作。

4xx:客戶端錯誤--請求有語法錯誤或請求無法實現。

5xx:服務器端錯誤--服務器未能實現合法的請求。

應答頭部

時間、內容類型等。

應答主體

我們需要的有價值的大量數據。


百度報文實例

頭部

報文體


最後更新:2017-04-03 05:39:29

  上一篇:go 【北大夏令營筆記-數學題】百練1700-Crossing River
  下一篇:go eclipse配置tomcat