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