header響應(yīng)頭

什么是header


HTTP協(xié)議的請求和響應(yīng)報(bào)文中必定包含HTTP首部。首部內(nèi)容為客戶端和服務(wù)器分別處理請求和響應(yīng)提供所需要的信息。對于客戶端用戶來說,這些信息中的大部分內(nèi)容都無須親自查看。

使用首部字段是為了給瀏覽器和服務(wù)器提供報(bào)文主體大小、所使用的語言、認(rèn)證信息等內(nèi)容。


header類型

根據(jù)不同上下文,可將消息頭分為:

  • Request headers: 從客戶端向服務(wù)器端發(fā)送請求報(bào)文時(shí)使用的首部。補(bǔ)充了請求的附加內(nèi)容、客戶端信息、響應(yīng)內(nèi)容相關(guān)優(yōu)先級等信息。
Accept:用戶代理可處理的媒體類型
Accept-Charset:優(yōu)先的字符集
Accept-Encoding:優(yōu)先的內(nèi)容編碼
Accept-Language:優(yōu)先的語言
Host:請求資源所在服務(wù)器
User-Agent:HTTP客戶端的信息

以Accept來講:

Accept: text/plain;q=0.3,text/html

Accept首部字段可通知服務(wù)器,用戶代理能夠處理的媒體類型及媒體類型的相對優(yōu)先級??墒褂胻ype/subtype這種形式,一次指定多種媒體類型。q代表的是權(quán)重值。

下面是一些常用的媒體類型的例子:



當(dāng)服務(wù)器提供多種內(nèi)容時(shí),將會首先返回權(quán)重值最高的媒體類型。

  • Response headers: 從服務(wù)器端向客戶端返回響應(yīng)報(bào)文時(shí)使用的首部。補(bǔ)充了響應(yīng)的附加內(nèi)容,也會要求客戶端附加額外的內(nèi)容信息。
Accept-Ranges:是否接受字節(jié)范圍要求
Age:推算資源創(chuàng)建經(jīng)過時(shí)間
Etag:資源的匹配信息
Location:令客戶端重定向值指定URI
  • Entity headers: 包含有關(guān)實(shí)體主體的更多信息,比如主體長(Content-Length)度或其MIME類型。
Allow:資源可支持的HTTP方法
Content-Encoding:實(shí)體主體使用的編碼方式
Content-Language:實(shí)體主體的自然語言
Content-Length:實(shí)體主體的大?。▎挝唬鹤止?jié))
Content-Type:實(shí)體主體的媒體類型  
//例子
Content-type:application/json
Content-Type:text/plain;charset=utf-8

Content-type對照表

  • General headers: 同時(shí)適用于請求和響應(yīng)消息,但與最終消息主體中傳輸?shù)臄?shù)據(jù)無關(guān)的消息頭。
Cache-Control:控制緩存行為
Connection:逐跳首部,鏈接的管理
Date:創(chuàng)建報(bào)文的日期
Warning:錯誤通知,通常會告知用戶一些與緩存相關(guān)的問題的警告

如何設(shè)置header

客戶端

在發(fā)送Ajax請求(實(shí)質(zhì)是一個HTTP請求)時(shí),我們可能需要設(shè)置上述一些請求頭部信息,比如content-type、connectioncookie、accept-xxx等。xhr提供了setRequestHeader來允許我們修改請求 header。

xhr.setRequestHeader(header, value);
  • 方法的第一個參數(shù) header 大小寫不敏感,即可以寫成content-type,也可以寫成Content-Type,甚至寫成content-Type;

  • Content-Type的默認(rèn)值與具體發(fā)送的數(shù)據(jù)類型有關(guān)(詳情)。

  • setRequestHeader必須在open()方法之后,send()方法之前調(diào)用,否則會拋錯;

需要注意的是,安全起見,有些請求頭的值只能由user agent設(shè)置:forbidden header namesforbidden response header names.

服務(wù)器端

以Node.js為例

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

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

  • 本文是《圖解HTTP》讀書筆記的第二篇,主要包括此書的第六章內(nèi)容,因?yàn)榈诹碌膬?nèi)容較多,而且比較重要,所以單獨(dú)寫為...
    lijiankun24閱讀 1,498評論 0 6
  • Web 頁面的實(shí)現(xiàn) Web 基于 HTTP 協(xié)議通信 客戶端(Client)的 Web 瀏覽器從 Web 服務(wù)器端...
    毛圈閱讀 1,304評論 0 2
  • HTTP 首部 HTTP 報(bào)文首部 HTTP 協(xié)議的請求和響應(yīng)報(bào)文中必定包含 HTTP 首部。首部內(nèi)容為客 戶端和...
    Gu_Ran閱讀 838評論 0 3
  • HTTP請求報(bào)文: HTTP響應(yīng)報(bào)文: 使用首部字段是為了給瀏覽器和服務(wù)器提供報(bào)文主體大小、所使用的語言、認(rèn)證信息...
    大唐雷戀閱讀 1,042評論 0 1
  • 最近大火的《旅行青蛙》可謂是刷爆了朋友圈,比起前幾天集體養(yǎng)“老公”的《戀與制作人》,這款佛系“養(yǎng)娃”游戲俘獲了一大...
    楠姐說故事閱讀 4,883評論 2 4

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