HTTP首部的構(gòu)成
一次HTTP請(qǐng)求或響應(yīng)的首部包括三個(gè)部分碧查,報(bào)文首部运敢,空行,以及報(bào)文主體忠售。其中報(bào)文首部在請(qǐng)求和響應(yīng)中有所不同传惠,參見下圖(圖片來(lái)自《圖解HTTP》一書):
請(qǐng)求首部
響應(yīng)首部
區(qū)別:請(qǐng)求行相比狀態(tài)行,要多一個(gè)URI標(biāo)識(shí)稻扬,因?yàn)橐f(shuō)明請(qǐng)求的資源卦方;另外還有各自的請(qǐng)求首部字段或響應(yīng)首部字段。
常用首部字段
請(qǐng)求首部字段
- Accept系: 定義請(qǐng)求結(jié)果的要求泰佳,如Accept盼砍,Accept-Encoding,Accept-Language逝她,Accept-Charset等衬廷。
- Host: 目標(biāo)服務(wù)器的域和端口號(hào),如
Host:www.demo.com
汽绢。 - Referer: 發(fā)起請(qǐng)求的頁(yè)面URI吗跋,即
Referer:${window.location.href}
- User-Agent: 客戶端信息,如
User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36
響應(yīng)首部字段
- ETag: 某一個(gè)固定的URI資源發(fā)生變化時(shí),ETag會(huì)更新跌宛,如
ETag:W/"92d8a6509d07d749ee661d8af47d2fbd"
- Server: HTTP服務(wù)器的應(yīng)用程序信息酗宋,如
Server:Apache/2.2.6 (Unix) PHP/5.2.5
- Location: 引導(dǎo)客戶端向某資源發(fā)起訪問(wèn),一般配合狀態(tài)碼3xx使用疆拘,重定向請(qǐng)求蜕猫,如
Location:http://www.demo2.com/index.html
。 - WWW-Authenticate: 告訴客戶端認(rèn)證方案哎迄,一般配合狀態(tài)碼
401 Unauthorized
使用回右,如WWW-Authenticate:Basic realm="Usagidesign Auth"
通用首部字段
- Cache-Control: 對(duì)于緩存服務(wù)器下達(dá)緩存控制的相關(guān)指令,具體指令有
no-cache
,no-store
,max-age = ${秒}
,public
,private
等漱挚。 - Connection: 控制代理不再轉(zhuǎn)發(fā)的字段翔烁,管理持久連接。
如Connection:Upgrade
旨涝,那么在經(jīng)過(guò)代理后蹬屹,Upgrade首部字段將不會(huì)被發(fā)送至服務(wù)器。如Connection:Keep-Alive
白华。 - Date: 表示HTTP報(bào)文創(chuàng)建時(shí)間慨默,如
Date:Fri, 19 Oct 2018 09:45:13 GMT
。 - Pragma: 兼容HTTP1.1以前的版本弧腥,控制緩存厦取,如
Pragma:no-cache
。 - Transfer-Encoding: 報(bào)文傳輸時(shí)的編碼方式管搪,HTTP1.1僅對(duì)分塊傳輸?shù)木幋a形式有效蒜胖,如
Transfer-Encoding:chunked
。
實(shí)體首部字段
- Allow: 資源允許的請(qǐng)求方式抛蚤,如
Allow:GET, HEAD
。 - Expires: 資源過(guò)期時(shí)間寻狂,如
Expires:Fri, 20 Oct 2018 09:45:13 GMT
岁经。 - Last-Modified: 資源最后一次修改的時(shí)間,如
Last-Modified:Fri, 15 Oct 2018 09:45:13 GMT
蛇券。
還有一些表示資源具體信息的缀壤,如Content-Encoding
,Content-Type
,Content-Language
,Content-Range
等。
Cookie相關(guān)纠亚,未被編入HTTP1.1 RFC2616標(biāo)準(zhǔn)中塘慕。
Cookie: 屬于請(qǐng)求首部,攜帶符合條件的Cookie(domain蒂胞,path图呢,expires)發(fā)送至服務(wù)器。
Set-Cookie: 屬于響應(yīng)首部,告訴客戶端需要保存哪些Cookie值蛤织,包括要種Cookie的domain赴叹,path,expires指蚜。
除了文中所列舉的首部字段之外乞巧,還有很多其他的首部字段,感興趣的朋友可以通過(guò)其他文章或資料來(lái)學(xué)習(xí)摊鸡。
注:以上內(nèi)容均整理自《圖解HTTP》绽媒,如有侵權(quán)請(qǐng)聯(lián)系我