?
本文檔使用 php中文網(wǎng)手冊(cè) 發(fā)布
HTTP 的 header 允許客戶端和服務(wù)器通過(guò)請(qǐng)求或響應(yīng)傳遞附加信息。一個(gè)請(qǐng)求頭由不區(qū)分大小寫的名稱和一個(gè)冒號(hào)“ :
'組成,然后由它的值(沒(méi)有換行符)組成。在值被忽略之前引導(dǎo)空格。
可以使用'X'前綴添加自定義專有標(biāo)頭,但是該慣例在2012年6月已棄用,原因是非標(biāo)準(zhǔn)字段在 RFC 6648中成為標(biāo)準(zhǔn)時(shí)造成的不便之處; 其他人則列入 IANA 注冊(cè)處,其原始內(nèi)容已在 RFC 4229中定義。IANA 還維護(hù)建議的新 HTTP 消息頭的注冊(cè)表。
頭文件可以根據(jù)其上下文分組:
常規(guī)標(biāo)題:標(biāo)題適用于請(qǐng)求和響應(yīng),但與最終在正文中傳輸?shù)臄?shù)據(jù)無(wú)關(guān)。
請(qǐng)求標(biāo)頭:包含有關(guān)要獲取的資源或客戶端本身的更多信息的標(biāo)頭。
響應(yīng)標(biāo)題:包含響應(yīng)附加信息的標(biāo)題,如其位置或服務(wù)器本身(名稱和版本等)。
實(shí)體標(biāo)頭:包含有關(guān)實(shí)體主體的更多信息的標(biāo)頭,如其內(nèi)容長(zhǎng)度或其 MIME 類型。
頭文件也可以根據(jù)代理如何處理它們進(jìn)行分組:
End-to-end 的 header 這些頭部必須傳送給消息的最終收件人; 即請(qǐng)求的服務(wù)器或響應(yīng)的客戶端。中間代理必須重新傳輸未經(jīng)修改的端到端標(biāo)頭,并且緩存必須存儲(chǔ)它們。逐跳標(biāo)頭這些標(biāo)頭僅對(duì)單個(gè)傳輸級(jí)連接有意義,且不得由代理或緩存重新傳輸。這樣的標(biāo)題有:Connection
,Keep-Alive
,Proxy-Authenticate
,Proxy-Authorization
,TE
,Trailer
,Transfer-Encoding
和Upgrade
。請(qǐng)注意,只能使用Connection
通用報(bào)頭設(shè)置逐跳報(bào)頭。
以下列表按照其使用類別匯總了 HTTP 標(biāo)頭。有關(guān)按字母順序排列的列表,請(qǐng)參閱左側(cè)的導(dǎo)航。
WWW-Authenticate
定義應(yīng)該用于訪問(wèn)資源的身份驗(yàn)證方法。
Authorization
包含使用服務(wù)器驗(yàn)證用戶代理的憑據(jù)。
Proxy-Authenticate
定義應(yīng)該用來(lái)訪問(wèn)代理服務(wù)器后面資源的身份驗(yàn)證方法。
Proxy-Authorization
包含使用代理服務(wù)器驗(yàn)證用戶代理的憑據(jù)。
Age
對(duì)象已在代理緩存中的時(shí)間(以秒為單位)。
Cache-Control
在請(qǐng)求和響應(yīng)中指定緩存機(jī)制的指令。
Expires
響應(yīng)被視為陳舊的日期/時(shí)間。
Pragma
特定于實(shí)現(xiàn)的頭部可能會(huì)在請(qǐng)求 - 響應(yīng)鏈的任何位置產(chǎn)生各種效果。用于向后兼容Cache-Control
頭部尚不存在的 HTTP / 1.0 緩存。
Warning
包含可能問(wèn)題信息的一般警告字段。
Accept-CH
...Content-DPR
...DPR
...Downlink
...Save-Data
...Viewport-Width
...Width
...
Last-Modified
它是驗(yàn)證器,是資源的最后修改日期,用于比較同一資源的多個(gè)版本。它不太準(zhǔn)確ETag
,但在某些環(huán)境下更容易計(jì)算。有條件的請(qǐng)求使用If-Modified-Since
和If-Unmodified-Since
使用此值來(lái)更改請(qǐng)求的行為。
ETag
它是一個(gè)驗(yàn)證程序,它是標(biāo)識(shí)資源版本的唯一字符串。有條件的請(qǐng)求使用If-Match
和If-None-Match
使用此值來(lái)更改請(qǐng)求的行為。
If-Match
使請(qǐng)求有條件并僅當(dāng)存儲(chǔ)的資源與給定的 ETags 中的一個(gè)匹配時(shí)才應(yīng)用該方法。
If-None-Match
使請(qǐng)求有條件并僅在存儲(chǔ)的資源與任何給定的 ETag 不匹配時(shí)才應(yīng)用該方法。這用于更新緩存(用于安全請(qǐng)求),或者防止在已經(jīng)存在的情況下上載新資源。
If-Modified-Since
使請(qǐng)求有條件并期望實(shí)體僅在給定日期后被修改的情況下才被傳送。這僅用于在緩存過(guò)期時(shí)傳輸數(shù)據(jù)。
If-Unmodified-Since
使請(qǐng)求有條件,并期望實(shí)體僅在給定日期后未被修改的情況下才被傳送。這用于確保特定范圍的新片段與先前片段的一致性,或者在修改現(xiàn)有文檔時(shí)實(shí)現(xiàn)樂(lè)觀并發(fā)控制系統(tǒng)。
Connection
控制當(dāng)前事務(wù)完成后網(wǎng)絡(luò)連接是否保持打開狀態(tài)。
Keep-Alive
控制持續(xù)連接應(yīng)保持打開狀態(tài)的時(shí)間。
Accept
通知服務(wù)器可以發(fā)回的數(shù)據(jù)類型。它是 MIME 類型的。
Accept-Charset
通知服務(wù)器客戶端能夠理解哪些字符集。
Accept-Encoding
通知服務(wù)器有關(guān)編碼算法,通常是一種壓縮算法,可用于回送的資源。
Accept-Language
通知服務(wù)器關(guān)于服務(wù)器預(yù)期發(fā)回的語(yǔ)言。這是一個(gè)提示,并不一定完全在用戶的全面控制之下:服務(wù)器應(yīng)始終注意不要重寫明確的用戶選擇(如在下拉列表中選擇語(yǔ)言)。
Expect
表示服務(wù)器需要滿足的期望,以便正確處理請(qǐng)求。Max-Forwards
...
Cookie
包含先前由服務(wù)器使用Set-Cookie
標(biāo)題發(fā)送的存儲(chǔ)的 HTTP Cookie 。
Set-Cookie
將 cookies 從服務(wù)器發(fā)送到用戶代理。
Cookie2
用于包含一個(gè) HTTP cookie ,以前由服務(wù)器通過(guò)Set-Cookie2
標(biāo)題發(fā)送,但已被規(guī)范廢棄。Cookie
改為使用。
Set-Cookie2
用于將 cookie 從服務(wù)器發(fā)送到用戶代理,但已被規(guī)范廢棄。Set-Cookie
改為使用。
Access-Control-Allow-Origin
指示是否可以共享響應(yīng)。
Access-Control-Allow-Credentials
指示在憑證標(biāo)志為 true 時(shí)是否可以公開對(duì)請(qǐng)求的響應(yīng)。
Access-Control-Allow-Headers
用于響應(yīng)預(yù)檢請(qǐng)求以指示在發(fā)出實(shí)際請(qǐng)求時(shí)可以使用哪些 HTTP 標(biāo)頭。
Access-Control-Allow-Methods
指定訪問(wèn)資源以響應(yīng)預(yù)檢請(qǐng)求時(shí)允許的方法。
Access-Control-Expose-Headers
通過(guò)列出其名稱,指示哪些頭可以作為響應(yīng)的一部分公開。
Access-Control-Max-Age
指示可以緩存預(yù)檢請(qǐng)求結(jié)果的時(shí)間長(zhǎng)度。
Access-Control-Request-Headers
用于發(fā)出預(yù)檢請(qǐng)求以讓服務(wù)器知道在實(shí)際請(qǐng)求發(fā)生時(shí)將使用哪些 HTTP 標(biāo)頭。
Access-Control-Request-Method
用于發(fā)出預(yù)檢請(qǐng)求時(shí),讓服務(wù)器知道在發(fā)出實(shí)際請(qǐng)求時(shí)將使用哪種 HTTP 方法。
Origin
指示獲取來(lái)源的位置。
DNT
用于表達(dá)用戶的跟蹤偏好。
Tk
指示應(yīng)用于相應(yīng)請(qǐng)求的跟蹤狀態(tài)。
Content-Disposition
如果傳輸?shù)馁Y源應(yīng)以內(nèi)聯(lián)方式顯示(標(biāo)題不存在時(shí)的默認(rèn)行為),或者應(yīng)該像下載一樣處理,并且瀏覽器應(yīng)顯示“另存為”窗口,那么它是響應(yīng)標(biāo)頭。
Content-Length
表示發(fā)送給收件人的實(shí)體主體的大小,以十進(jìn)制數(shù)表示。
Content-Type
指示資源的媒體類型。
Content-Encoding
用于指定壓縮算法。
Content-Language
描述用于受眾的語(yǔ)言,以便用戶根據(jù)用戶自己的首選語(yǔ)言進(jìn)行區(qū)分。
Content-Location
指示返回?cái)?shù)據(jù)的備用位置。
Forwarded
包含代理服務(wù)器的面向客戶端的信息,這些信息在請(qǐng)求路徑中包含代理時(shí)發(fā)生了改變或丟失。
X-Forwarded-For
標(biāo)識(shí)通過(guò) HTTP 代理或負(fù)載平衡器連接到 Web 服務(wù)器的客戶端的始發(fā) IP 地址。
X-Forwarded-Host
標(biāo)識(shí)客戶端用于連接到代理或負(fù)載平衡器的原始主機(jī)請(qǐng)求。
X-Forwarded-Proto
標(biāo)識(shí)客戶端用于連接到代理或負(fù)載平衡器的協(xié)議( HTTP 或 HTTPS )。
Via
代理添加了正向和反向代理,并且可以出現(xiàn)在請(qǐng)求頭和響應(yīng)頭中。
Location
指示將頁(yè)面重定向到的 URL 。
From
包含控制請(qǐng)求用戶代理的人類用戶的 Internet 電子郵件地址。
Host
指定服務(wù)器的域名(用于虛擬主機(jī)),以及(可選)指定服務(wù)器正在偵聽的 TCP 端口號(hào)。
Referer
之前的網(wǎng)頁(yè)的地址,從該網(wǎng)頁(yè)開始,鏈接到當(dāng)前請(qǐng)求的頁(yè)面。
Referrer-Policy
管理在Referer
頭文件中發(fā)送的引用者信息應(yīng)包含在請(qǐng)求中。
User-Agent
包含允許網(wǎng)絡(luò)協(xié)議對(duì)等方標(biāo)識(shí)請(qǐng)求軟件用戶代理的應(yīng)用程序類型,操作系統(tǒng),軟件供應(yīng)商或軟件版本的特征字符串。另請(qǐng)參閱 Firefox 用戶代理字符串參考。
Allow
列出資源支持的一組 HTTP 請(qǐng)求方法。
Server
包含有關(guān)原始服務(wù)器用來(lái)處理請(qǐng)求的軟件的信息。
Accept-Ranges
指示服務(wù)器是否支持范圍請(qǐng)求,如果有,請(qǐng)?jiān)谀膫€(gè)單位范圍內(nèi)表示。
Range
指示服務(wù)器應(yīng)返回的文檔的一部分。
If-Range
創(chuàng)建一個(gè)條件范圍請(qǐng)求,只有當(dāng)給定的 etag 或日期與遠(yuǎn)程資源匹配時(shí)才會(huì)滿足該條件范圍請(qǐng)求。用于防止從資源的不兼容版本下載兩個(gè)范圍。
Content-Range
指示部分消息所屬的全身消息的位置。
Content-Security-Policy
(CSP)控制用戶代理允許為給定頁(yè)面加載的資源。
Content-Security-Policy-Report-Only
允許 Web 開發(fā)人員通過(guò)監(jiān)視(但不強(qiáng)制執(zhí)行)其效果來(lái)實(shí)驗(yàn)策略。這些違規(guī)報(bào)告由通過(guò) HTTP 請(qǐng)求發(fā)送到指定 URI 的 JSON 文檔組成POST
。
Public-Key-Pins
(HPKP)將特定加密公鑰與某個(gè) Web 服務(wù)器關(guān)聯(lián),以降低偽造證書對(duì) MITM 攻擊的風(fēng)險(xiǎn)。Public-Key-Pins-Report-Only
將報(bào)告發(fā)送到標(biāo)題中指定的 report-uri ,并且仍允許客戶端連接到服務(wù)器,即使違反了鎖定。
Strict-Transport-Security
(HSTS)使用 HTTPS 而不是 HTTP 強(qiáng)制通信。
Upgrade-Insecure-Requests
向服務(wù)器發(fā)送一個(gè)信號(hào),表示客戶對(duì)加密和認(rèn)證響應(yīng)的偏好,并且可以成功處理該upgrade-insecure-requests
指令。
X-Content-Type-Options
禁用 MIME 嗅探并強(qiáng)制瀏覽器使用中指定的類型Content-Type
。
X-Frame-Options
(XFO)指示是允許瀏覽器呈現(xiàn)<frame>
,<iframe>
或者<object>
X-XSS-Protection
中的頁(yè)面,還是啟用跨站點(diǎn)腳本過(guò)濾。
Ping-From
...Ping-To
...Last-Event-ID
...
Transfer-Encoding
指定用于安全地將實(shí)體傳送給用戶的編碼形式。
TE
指定用戶代理愿意接受的傳輸編碼。
Trailer
允許發(fā)件人在分塊郵件末尾添加其他字段。
Sec-WebSocket-Key
...Sec-WebSocket-Extensions
...Sec-WebSocket-Accept
...Sec-WebSocket-Protocol
...Sec-WebSocket-Version
...
Date
包含消息來(lái)源的日期和時(shí)間。
Large-Allocation
告訴瀏覽器正在加載的頁(yè)面將要執(zhí)行大量分配。
Link
... Retry-After
表示用戶代理在進(jìn)行后續(xù)請(qǐng)求之前應(yīng)等待多長(zhǎng)時(shí)間。
SourceMap
將生成的代碼鏈接到源地圖。升級(jí)標(biāo)題字段
Upgrade
的相關(guān) RFC 文檔是 RFC 7230 的6.7節(jié)。該標(biāo)準(zhǔn)建立了在當(dāng)前客戶端,服務(wù)器,傳輸協(xié)議連接上升級(jí)或更改為不同協(xié)議的規(guī)則。例如,如果服務(wù)器決定確認(rèn)并實(shí)現(xiàn) Upgrade 標(biāo)頭字段,則此標(biāo)頭標(biāo)準(zhǔn)允許客戶端從 HTTP 1.1 更改為 HTTP 2.0 。Niether 聚會(huì)需要接受升級(jí)標(biāo)題字段中指定的條款。它可以在客戶端和服務(wù)器頭中使用。如果指定了升級(jí)頭域,那么發(fā)送者也必須發(fā)送帶有指定升級(jí)選項(xiàng)的連接頭域。有關(guān) Connection 標(biāo)題字段的詳細(xì)信息,請(qǐng)參閱上述 RFC 的6.1節(jié)。
Vary
確定如何匹配未來(lái)的請(qǐng)求標(biāo)頭,以決定是否可以使用緩存的響應(yīng),而不是從原始服務(wù)器請(qǐng)求新的響應(yīng)。
X-DNS-Prefetch-Control
控制 DNS 預(yù)取,這是瀏覽器主動(dòng)執(zhí)行用戶可以選擇關(guān)注的兩個(gè)鏈接的域名解析功能以及文檔引用的項(xiàng)目(包括圖像,CSS,JavaScript 等)的 URL 的功能。X-Firefox-Spdy
... ... X-Requested-With
... ... X-UA-Compatible
... ...
您可以通過(guò)編寫新條目或改進(jìn)現(xiàn)有條目來(lái)提供幫助。