一,HTTP報(bào)文首部
HTTP協(xié)議的請(qǐng)求和響應(yīng)報(bào)文中必定包含HTTP首部。首部?jī)?nèi)容為客戶(hù)端和服務(wù)器分別處理請(qǐng)求和響應(yīng)提供所需要的信息。
報(bào)文首部由幾個(gè)字段構(gòu)成。HTTP請(qǐng)求報(bào)文由方法、URI、HTTP版本、HTTP首部字段等部分構(gòu)成。
HTTP響應(yīng)報(bào)文由HTTP版本、狀態(tài)碼(數(shù)字和原因短語(yǔ))、HTTP首部字段三部分構(gòu)成。
使用首部字段是為了給瀏覽器和服務(wù)器提供報(bào)文主體大小、所使用的語(yǔ)言、認(rèn)證信息等內(nèi)容。HTTP首部字段是由首部字段名和字段值構(gòu)成,中間用冒號(hào)分隔。例如Content-Type字段顯示。
Content-Type:text/html
Keep-Alive:timeout=15,max=100
二,HTTP首部字段
HTTP/1.1首部字段
根據(jù)實(shí)際用途被分為以下四種類(lèi)型。
1,通用首部字段(General Header Fields)
請(qǐng)求報(bào)文和響應(yīng)報(bào)文兩方都會(huì)使用的首部。
2,請(qǐng)求首部字段(Request Header Fields)
從客戶(hù)端向服務(wù)器發(fā)送請(qǐng)求報(bào)文時(shí)使用的首部,補(bǔ)充了請(qǐng)求的附加內(nèi)容、客戶(hù)端信息、響應(yīng)內(nèi)容相關(guān)優(yōu)先級(jí)等信息。
3,響應(yīng)首部字段(Response Header Fields)
從服務(wù)器端到客戶(hù)端返回響應(yīng)報(bào)文時(shí)使用的首部,補(bǔ)充了響應(yīng)的附加內(nèi)容,也會(huì)要求客戶(hù)端附加額外的內(nèi)容信息。
4,實(shí)體首部字段(Entity Header Fields)
針對(duì)請(qǐng)求報(bào)文和響應(yīng)報(bào)文的實(shí)體部分使用的首部,補(bǔ)充了資源內(nèi)容更新時(shí)間等與實(shí)體有關(guān)的信息。
非HTTP/1.1首部字段
在HTTP協(xié)議通信交互中使用到的首部字段,不限于RFC2616種定義的47種首部字段。還有Cookie、Set-Cookie和Content-Disposition等在其他RFC中定義的首部字段。這些非正式的首部字段統(tǒng)一歸納在RFC4229 HTTP Header Field Registrations中。
End-to-end首部和Hop-by-hop首部
HTTP首部字段將定義成緩存代理和非緩存代理的行為,分為端到端首部(End-to-end Header)和逐跳首部(Hop-by-hop Header)兩種類(lèi)型。
下面列舉了HTTP/1.1中的逐跳首部字段,除了以下8個(gè)首部字段之外,其他所有字段都屬于端到端首部:
(1)Connection
(2)Keep-Alive
(3)Proxy-Authenticate
(4)Proxy-Authorization
(5)Trailer
(6)TE
(7)Transfer-Encoding
(8)Upgrade