HTTP首部(請(qǐng)求頭,響應(yīng)頭)

HTTP首部的構(gòu)成

一次HTTP請(qǐng)求或響應(yīng)的首部包括三個(gè)部分,報(bào)文首部,空行,以及報(bào)文主體。其中報(bào)文首部在請(qǐng)求和響應(yīng)中有所不同,參見(jiàn)下圖(圖片來(lái)自《圖解HTTP》一書(shū)):


請(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: 客戶(hù)端信息,如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)客戶(hù)端向某資源發(fā)起訪問(wèn),一般配合狀態(tài)碼3xx使用,重定向請(qǐng)求,如Location:http://www.demo2.com/index.html
  • WWW-Authenticate: 告訴客戶(hù)端認(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)首部,告訴客戶(hù)端需要保存哪些Cookie值,包括要種Cookie的domain,path,expires。

除了文中所列舉的首部字段之外,還有很多其他的首部字段,感興趣的朋友可以通過(guò)其他文章或資料來(lái)學(xué)習(xí)。

注:以上內(nèi)容均整理自《圖解HTTP》,如有侵權(quán)請(qǐng)聯(lián)系我

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容