這篇主要講如下幾點:web
1.報文是如何流動的服務器
2.http報文的三個組成部分(起始行、首部和實體部分)spa
3.請求和響應報文之間的區別3d
4.和響應報文一塊兒返回的各類狀態碼代理
5.各類各樣的HTTP首部都是用來幹什麼的blog
報文流
事務
http報文是在http應用程序之間發送的數據塊。這些數據以一些文本形式的元信息開頭,這些信息描述了報文的內容及含義,後面跟着可選的數據部分。這些報文在客戶端、服務端和代理之間的流動,術語「流入」、「流出」、「上游」及「下游」都是用來描述報文方向的資源
報文流入源端服務器web服務器
HTTP使用術語流入、流出來描述事務的方向,報文流入源端服務器,工做完成以後,會流回用戶的agent代理中。如圖3-1
it
報文向下流出
HTTP報文會想河水同樣流出,無論是請求報文仍是響應報文,全部的報文都會向下遊流動,圖3-2
報文組成部分
HTTP報文是簡單的格式化數據塊。它由三部分組成:對報文進行描述的起始行(start line)、包含屬性的首部(header)塊、以及可選的、包含數據的主體(body)部分
請求和響應報文之間的區別
全部的HTTP報文均可以分爲兩類:請求報文和響應報文。請求報文會向web服務器請求一個動做,響應報文會將請求的結果返回給客戶端。請求報文和響應的報文的結構相同。如圖3-4
請求報文的格式:<method><request-URL><version>
<headers>
<entity-body>
響應報文的格式:<version><status><reason-phrase>
<headers>
<entity-body>
部分簡要描述:
<method>方法:客戶端但願服務器對資源執行的動做,如GET\POST\HEAD\PUT
<request-URL>請求URL
<version>版本:報文所使用的HTTP版本,如HTTP1.0 :HTTP/<major>.<minor>
<status>狀態碼
<reason-phrase>緣由短語:數字狀態的可讀版本,包含終止序列以前的全部文本。
<headers>首部
<entity-body>實體的主體部分
起始行
全部的HTTP報文都以一個起始行做爲開始。請求報文的起始行說明了要作什麼。響應報文的起始行說明發生什麼
請求行:請求報文請求服務器對資源進行一些操做。請求報文的起始行,或稱爲請求行,包含了一個方法和一個請求URL,這個方法描述了服務器應該執行的操做,請求URL描述了要對哪一個資源執行這個方法。請求行中還包含HTTP的版本,用來告知服務器,客戶端使用的是哪一種HTTP。
響應行:響應報文承載了狀態信息和操做產生的全部結果數據,將其返回給客戶端。響應報文的起始行,或稱爲響應行,包含了響應報文使用的HTTP版本、數字狀態碼,以及描述操做狀態的文本形式的緣由短語。
方法
經常使用的http方法
狀態碼
狀態碼分類
常見的狀態碼
首部分類
狀態碼