HTTP 標頭
HTTP 標頭允許客戶端和伺服器在請求或響應訊息中傳遞附加資訊。在 HTTP/1.X 中,標頭是一個不區分大小寫的名稱,後跟一個冒號,然後是可選的將被忽略的空白,最後是其值(例如:Allow: POST)。在 HTTP/2 及以上版本中,標頭在開發者工具中檢視時會以小寫形式顯示(accept: */*),並且對於一組特殊的偽標頭(:status: 200),會以冒號作為字首。你可以在 HTTP 訊息頁面找到關於各協議版本語法的更多資訊。
自定義專有標頭在歷史上一直使用 X- 字首,但這一慣例在 2012 年被棄用,因為當非標準欄位在 RFC 6648 中成為標準時,它造成了不便;其他標頭列在 IANA HTTP 欄位名稱登錄檔中,其原始內容在 RFC 4229 中定義。IANA 登錄檔列出了各種標頭,包括關於其狀態的資訊。
標頭可以根據其上下文進行分組
- 請求標頭
-
包含有關要獲取的資源的更多資訊,或有關請求資源的客戶端的更多資訊。
- 響應標頭
-
包含有關響應的附加資訊,例如其位置或提供它的伺服器。
- 表示標頭
-
包含有關資源正文的資訊,例如其 MIME 型別,或應用的編碼/壓縮。
- 載荷標頭
-
包含有關載荷資料的獨立於表示的資訊,包括內容長度和用於傳輸的編碼。
標頭也可以根據代理處理它們的方式進行分組
- 端到端標頭
-
這些標頭必須傳輸到訊息的最終接收者:對於請求是伺服器,對於響應是客戶端。中間代理必須未經修改地重新傳輸這些標頭,並且快取必須儲存它們。
- 逐跳標頭
-
這些標頭僅對單個傳輸級連線有意義,並且不得由代理重新傳輸或快取。請注意,只有逐跳標頭可以透過
Connection標頭設定。
身份驗證
WWW-Authenticate-
定義了應用於訪問資源的身份驗證方法。
-
包含用於向伺服器驗證使用者代理身份的憑據。
Proxy-Authenticate-
定義了應用於訪問代理伺服器後面的資源的身份驗證方法。
-
包含用於向代理伺服器驗證使用者代理身份的憑據。
快取
Age-
物件在代理快取中已存在的時間,以秒為單位。
Cache-Control-
用於請求和響應中快取機制的指令。
Clear-Site-Data-
清除與請求網站相關的瀏覽資料(例如 Cookie、儲存、快取)。
Expires-
在此日期/時間之後,響應被視為過時。
No-Vary-Search實驗性-
指定了一組規則,定義了 URL 的查詢引數將如何影響快取匹配。這些規則規定了具有不同 URL 引數的同一 URL 是否應作為單獨的瀏覽器快取條目儲存。
條件請求
Last-Modified-
資源的最後修改日期,用於比較同一資源的多個版本。它不如
ETag準確,但在某些環境中更容易計算。使用If-Modified-Since和If-Unmodified-Since的條件請求使用此值來更改請求的行為。 ETag-
一個唯一的字串,標識資源的版本。使用
If-Match和If-None-Match的條件請求使用此值來更改請求的行為。 If-Match-
使請求成為條件請求,並且僅當儲存的資源與給定的 ETag 之一匹配時才應用該方法。
If-None-Match-
使請求成為條件請求,並且僅當儲存的資源與任何給定的 ETag 不匹配時才應用該方法。這用於更新快取(對於安全請求),或在資源已存在時防止上傳新資源。
If-Modified-Since-
使請求成為條件請求,並且期望僅在給定日期之後資源被修改過才傳輸。這用於僅在快取過時時傳輸資料。
If-Unmodified-Since-
使請求成為條件請求,並且期望僅在給定日期之後資源未被修改過才傳輸。這確保了特定範圍的新片段與先前片段的一致性,或者在修改現有文件時實現樂觀併發控制系統。
Vary-
確定如何匹配請求標頭,以決定是可以使用快取的響應,還是需要從源伺服器請求新的響應。
連線管理
Connection-
控制網路連線在當前事務完成後是否保持開啟。
Keep-Alive-
控制持久連線應保持開啟多長時間。
內容協商
有關更多詳細資訊,請參閱內容協商文章。
Accept-
通知伺服器可以發回的資料型別。
Accept-Encoding-
可用於返回資源的編碼演算法,通常是壓縮演算法。
Accept-Language-
通知伺服器期望其發回的人類語言。這是一個提示,並不一定完全由使用者控制:伺服器應始終注意不要覆蓋明確的使用者選擇(例如從下拉選單中選擇語言)。
Accept-PatchAccept-Post
控制
Expect-
指示伺服器為正確處理請求需要滿足的期望。
Max-Forwards-
使用
TRACE時,指示請求在被反射回傳送方之前可以進行的最大跳數。
Cookie
-
包含先前由伺服器透過
Set-Cookie標頭髮送的已儲存的 HTTP Cookie。 -
從伺服器向用戶代理傳送 Cookie。
CORS
有關更多資訊,請參閱 CORS 文件。
Access-Control-Allow-Credentials-
指示當憑據標誌為 true 時,對請求的響應是否可以被暴露。
Access-Control-Allow-Headers-
用於響應預檢請求,以指示在發出實際請求時可以使用哪些 HTTP 標頭。
Access-Control-Allow-Methods-
指定在響應預檢請求時訪問資源所允許的方法。
Access-Control-Allow-Origin-
指示響應是否可以被共享。
Access-Control-Expose-Headers-
透過列出它們的名稱,指示哪些標頭可以作為響應的一部分被暴露。
Access-Control-Max-Age-
指示預檢請求的結果可以被快取多長時間。
Access-Control-Request-Headers-
在發出預檢請求時使用,讓伺服器知道在發出實際請求時將使用哪些 HTTP 標頭。
Access-Control-Request-Method-
在發出預檢請求時使用,讓伺服器知道在發出實際請求時將使用哪種 HTTP 方法。
Origin-
指示獲取請求的來源。
Timing-Allow-Origin-
指定允許檢視透過 資源計時 API 的特性檢索到的屬性值的源,否則由於跨源限制,這些值將被報告為零。
下載
Content-Disposition-
指示傳輸的資源是應該內聯顯示(沒有此標頭的預設行為),還是應該像下載一樣處理,並讓瀏覽器呈現一個“另存為”對話方塊。
完整性摘要
Content-Digest實驗性-
提供 HTTP 訊息中(訊息內容)的位元組流的摘要,該摘要依賴於
Content-Encoding和Content-Range。 Repr-Digest實驗性-
在傳輸前提供目標資源所選表示的摘要。與
Content-Digest不同,該摘要不考慮Content-Encoding或Content-Range。 Want-Content-Digest實驗性-
表示希望獲得
Content-Digest標頭。它是Want-Repr-Digest的Content-類似物。 Want-Repr-Digest實驗性-
表示希望獲得
Repr-Digest標頭。它是Want-Content-Digest的Repr-類似物。
完整性策略
Integrity-Policy-
確保使用者代理載入的所有(特定型別的)資源都具有子資源完整性保證。
Integrity-Policy-Report-Only-
報告使用者代理載入的資源中,如果強制執行完整性策略(使用
Integrity-Policy標頭),將違反子資源完整性保證的資源。
訊息正文資訊
Content-Length-
資源的大小,以十進位制位元組數表示。
Content-Type-
指示資源的媒體型別。
Content-Encoding-
用於指定壓縮演算法。
Content-Language-
描述了面向受眾的人類語言,以便使用者可以根據自己的首選語言進行區分。
Content-Location-
指示返回資料的備用位置。
偏好
客戶端可以在請求中傳送偏好,以指示請求和響應的可選行為。在客戶端可能不清楚的情況下,伺服器響應可以指示是否應用了某個偏好。瀏覽器沒有透過這些標頭髮送偏好的原生處理方式;它們用於自定義的、特定於實現的客戶端。
Prefer-
指示在請求處理期間對特定伺服器行為的偏好。例如,它可以請求最小響應內容(
return=minimal)或非同步處理(respond-async)。如果該標頭不受支援,伺服器將正常處理請求。 Preference-Applied-
告知客戶端伺服器應用了
Prefer標頭中指定的哪些偏好。這是一個僅用於響應的標頭,提供有關偏好處理的透明度。
代理
範圍請求
HTTP 範圍請求允許客戶端從伺服器請求資源的一部分。範圍請求對於支援隨機訪問的媒體播放器、知道只需要大檔案一部分的資料工具以及允許使用者暫停和恢復下載的下載管理器等應用程式非常有用。
Accept-Ranges-
指示伺服器是否支援範圍請求,如果支援,則範圍可以用哪種單位表示。
Range-
指示伺服器應返回文件的哪個部分。
If-Range-
建立一個條件範圍請求,僅當給定的 etag 或日期與遠端資源匹配時才會被滿足。用於防止從不相容版本的資源下載兩個範圍。
Content-Range-
指示部分訊息在完整訊息體中的位置。
重定向
Location-
指示將頁面重定向到的 URL。
Refresh-
指示瀏覽器重新載入頁面或重定向到另一個頁面。其值與帶有
http-equiv="refresh"的meta元素相同。
請求上下文
From-
包含控制請求使用者代理的人類使用者的網際網路電子郵件地址。
Host-
指定伺服器的域名(用於虛擬主機),以及(可選的)伺服器正在監聽的 TCP 埠號。
Referer-
前一個網頁的地址,從該網頁的連結跟蹤到當前請求的頁面。
Referrer-Policy-
規定在
Referer標頭中傳送的引用者資訊中,哪些應該包含在發出的請求中。 User-Agent-
包含一個特徵字串,允許網路協議對等方識別請求軟體使用者代理的應用程式型別、作業系統、軟體供應商或軟體版本。
響應上下文
安全
Cross-Origin-Embedder-Policy(COEP)-
允許伺服器為給定文件宣告一個嵌入器策略。
Cross-Origin-Opener-Policy(COOP)-
防止其他域開啟/控制視窗。
Cross-Origin-Resource-Policy(CORP)-
防止其他域讀取應用了此標頭的資源的響應。另請參閱 CORP 解釋文章。
Content-Security-Policy(CSP)-
控制使用者代理允許為給定頁面載入的資源。
Content-Security-Policy-Report-Only-
允許 Web 開發者透過監控而非強制執行策略的效果來試驗策略。這些違規報告由透過 HTTP
POST請求傳送到指定 URI 的 JSON 文件組成。 Expect-CT已棄用-
讓網站選擇加入證書透明度的報告和強制執行,以檢測該網站使用的錯誤頒發的證書。
Permissions-Policy-
提供一種機制,允許和拒絕在網站自身的框架內以及其嵌入的
<iframe>中使用瀏覽器功能。 Reporting-Endpoints實驗性-
一個響應標頭,允許網站所有者指定一個或多個端點,用於接收錯誤報告,如 CSP 違規報告、
Cross-Origin-Opener-Policy報告或其他通用違規。 Strict-Transport-Security(HSTS)-
強制使用 HTTPS 而不是 HTTP進行通訊。
Upgrade-Insecure-Requests-
向伺服器傳送一個訊號,表示客戶端偏好加密和認證的響應,並且能夠成功處理
upgrade-insecure-requests指令。 X-Content-Type-Options-
停用 MIME 嗅探,並強制瀏覽器使用
Content-Type中給定的型別。 X-Frame-Options(XFO)X-Permitted-Cross-Domain-Policies-
跨域策略檔案可以授予客戶端(如 Adobe Acrobat 或 Apache Flex 等)處理跨域資料的許可權,否則這些資料會因同源策略而受限。
X-Permitted-Cross-Domain-Policies標頭會覆蓋此類策略檔案,以便客戶端仍然阻止不需要的請求。 X-Powered-By-
可能由託管環境或其他框架設定,幷包含有關它們的資訊,但對應用程式或其訪問者沒有任何用處。取消設定此標頭以避免暴露潛在漏洞。
X-XSS-Protection-
啟用跨站指令碼過濾。
獲取元資料請求標頭
獲取元資料請求標頭提供了關於請求發起上下文的資訊。伺服器可以利用這些資訊,根據請求的來源和資源的使用方式,來決定是否應允許該請求。
Sec-Fetch-Site-
指示請求發起者的源與其目標的源之間的關係。它是一個結構化標頭,其值為一個令牌,可能的值為
cross-site、same-origin、same-site和none。 Sec-Fetch-Mode-
向伺服器指示請求的模式。它是一個結構化標頭,其值為一個令牌,可能的值為
cors、navigate、no-cors、same-origin和websocket。 Sec-Fetch-User-
指示導航請求是否由使用者啟用觸發。它是一個結構化標頭,其值為布林值,因此可能的值為
?0(false)和?1(true)。 Sec-Fetch-Dest-
指示請求的目的地。它是一個結構化標頭,其值為一個令牌,可能的值為
audio、audioworklet、document、embed、empty、font、image、manifest、object、paintworklet、report、script、serviceworker、sharedworker、style、track、video、worker和xslt。
以下請求標頭並非嚴格意義上的“獲取元資料請求標頭”,但也同樣提供了關於資源將如何被使用的上下文資訊。伺服器可能會使用它們來修改其快取行為或返回的資訊。
Sec-Purpose-
指示請求的目的,當目的不是使用者代理的即時使用時。該標頭目前有一個可能的值
prefetch,表示正在為可能的未來導航而預先獲取資源。 -
在服務工作執行緒啟動期間,在搶先請求
fetch()資源時傳送的請求標頭。該值透過NavigationPreloadManager.setHeaderValue()設定,可用於通知伺服器應返回與正常fetch()操作中不同的資源。
伺服器傳送事件
Reporting-Endpoints-
一個響應標頭,用於在使用報告 API 時,指定瀏覽器應向其傳送警告和錯誤報告的伺服器端點。
Report-To已棄用 非標準-
一個響應標頭,用於在使用報告 API 時,指定瀏覽器應向其傳送警告和錯誤報告的伺服器端點。
傳輸編碼
Transfer-Encoding-
指定用於安全地將資源傳輸給使用者的編碼形式。
TE-
指定使用者代理願意接受的傳輸編碼。
Trailer-
允許傳送方在分塊訊息的末尾包含附加欄位。
WebSocket
WebSocket API 在 WebSocket 握手中使用的標頭
Sec-WebSocket-Accept-
一個響應標頭,表示伺服器願意升級到 WebSocket 連線。
Sec-WebSocket-Extensions-
在請求中,此標頭按優先順序指示客戶端支援的 WebSocket 擴充套件。在響應中,它指示伺服器從客戶端的偏好中選擇的擴充套件。
Sec-WebSocket-Key-
一個請求標頭,包含一個金鑰,用於驗證客戶端明確打算開啟一個
WebSocket。 Sec-WebSocket-Protocol-
在請求中,此標頭按優先順序指示客戶端支援的子協議。在響應中,它指示伺服器從客戶端的偏好中選擇的子協議。
Sec-WebSocket-Version-
在請求中,此標頭指示客戶端使用的 WebSocket 協議版本。在響應中,僅當伺服器不支援請求的協議版本時才會傳送此標頭,並列出伺服器支援的版本。
其他
Alt-Svc-
用於列出訪問此服務的備用方式。
Alt-Used-
用於標識正在使用的備用服務。
Date-
包含訊息的建立日期和時間。
Link-
此實體標頭欄位提供了一種在 HTTP 標頭中序列化一個或多個連結的方法。它在語義上等同於 HTML
<link>元素。 Retry-After-
指示使用者代理在發出後續請求前應等待多長時間。
Server-Timing-
為給定的請求-響應週期傳達一個或多個指標和描述。
Service-Worker-
包含在服務工作執行緒指令碼資源的獲取請求中。此標頭幫助管理員記錄服務工作執行緒指令碼請求以進行監控。
Service-Worker-AllowedSourceMap-
連結到源對映,以便偵錯程式可以逐步執行原始原始碼,而不是生成或轉換後的程式碼。
Upgrade-
此 HTTP/1.1(僅限)標頭可用於將已建立的客戶端/伺服器連線升級到不同的協議(在同一傳輸協議上)。例如,客戶端可以用它將連線從 HTTP 1.1 升級到 HTTP 2.0,或將 HTTP 或 HTTPS 連線升級到 WebSocket。
Priority-
提供關於特定連線上特定資源請求優先順序的提示。該值可以在請求中傳送以指示客戶端優先順序,或者如果伺服器選擇重新確定請求的優先順序,則可以在響應中傳送。
實驗性標頭
歸因報告標頭
歸因報告 API 使開發者能夠衡量轉化——例如,當用戶點選一個網站上嵌入的廣告,然後在供應商網站上購買商品時——然後訪問這些轉化的報告。它不依賴於第三方跟蹤 Cookie,而是依靠各種標頭來註冊來源和觸發器,這些來源和觸發器被匹配以指示一次轉化。
Attribution-Reporting-Eligible-
用於指示與當前請求對應的響應有資格參與歸因報告,透過註冊歸因來源或觸發器。
Attribution-Reporting-Register-Source-
作為對包含
Attribution-Reporting-Eligible標頭的請求的響應的一部分,此標頭用於註冊一個歸因來源。 Attribution-Reporting-Register-Trigger-
作為對包含
Attribution-Reporting-Eligible標頭的請求的響應的一部分,此標頭用於註冊一個歸因觸發器。
客戶端提示
HTTP 客戶端提示是一組請求標頭,提供有關客戶端的有用資訊,如裝置型別和網路條件,並允許伺服器根據這些條件最佳化所提供的內容。
伺服器使用 Accept-CH 主動向客戶端請求它們感興趣的客戶端提示標頭。然後,客戶端可以選擇在後續請求中包含所請求的標頭。
Accept-CH-
伺服器可以使用
Accept-CH標頭欄位或帶有http-equiv屬性的等效 HTML<meta>元素來宣告對客戶端提示的支援。 Critical-CH實驗性
下面列出了不同類別的客戶端提示。
使用者代理客戶端提示
UA 客戶端提示是提供有關使用者代理、其執行的平臺/架構以及在使用者代理或平臺上設定的使用者偏好資訊的請求標頭。
Sec-CH-UA實驗性-
使用者代理的品牌和版本。
Sec-CH-UA-Arch實驗性-
使用者代理的底層平臺架構。
Sec-CH-UA-Bitness實驗性-
使用者代理的底層 CPU 架構位數(例如“64”位)。
Sec-CH-UA-Form-Factors實驗性-
使用者代理的形態因子,描述使用者如何與使用者代理互動。
Sec-CH-UA-Full-Version已棄用-
使用者代理的完整版本字串。
Sec-CH-UA-Full-Version-List實驗性-
使用者代理品牌列表中每個品牌的完整版本。
Sec-CH-UA-Mobile實驗性-
使用者代理正在移動裝置上執行,或者更普遍地,偏好“移動”使用者體驗。
Sec-CH-UA-Model實驗性-
使用者代理的裝置型號。
Sec-CH-UA-Platform實驗性-
使用者代理的底層作業系統/平臺。
Sec-CH-UA-Platform-Version實驗性-
使用者代理的底層作業系統版本。
Sec-CH-UA-WoW64實驗性-
使用者代理二進位制檔案是否在 64 位 Windows 上以 32 位模式執行。
Sec-CH-Prefers-Color-Scheme實驗性-
使用者對深色或淺色方案的偏好。
Sec-CH-Prefers-Reduced-Motion實驗性-
使用者偏好看到更少的動畫和內容佈局變化。
Sec-CH-Prefers-Reduced-Transparency實驗性-
請求標頭指示使用者代理對降低透明度的偏好。
裝置客戶端提示
Content-DPR已棄用 非標準-
一個響應標頭,用於確認在請求中使用了螢幕
DPR客戶端提示來選擇影像資源時的影像裝置畫素比(DPR)。 Device-Memory-
客戶端可用 RAM 記憶體的大致數量。這是 裝置記憶體 API 的一部分。
DPR已棄用 非標準Viewport-Width已棄用 非標準-
請求標頭提供客戶端的佈局視口寬度,單位為 CSS 畫素。
Width已棄用 非標準-
請求標頭指示期望的資源寬度,單位為物理畫素(影像的固有尺寸)。
網路客戶端提示
網路客戶端提示允許伺服器根據使用者選擇以及網路頻寬和延遲來選擇傳送哪些資訊。
壓縮字典傳輸
壓縮字典傳輸是一種使用共享壓縮字典來減小 HTTP 響應傳輸大小的方法,而不是使用 Brotli 壓縮或 Zstandard 壓縮中的標準靜態字典。
Available-Dictionary實驗性-
瀏覽器可以使用此請求標頭來指示它擁有的最佳字典,供伺服器用於壓縮。
Dictionary-ID實驗性-
當瀏覽器已有可用於某個資源的字典,並且伺服器在
Use-As-Dictionary標頭中為該字典提供了id時使用。對可以使用該字典的資源的請求會帶有Available-Dictionary標頭和Dictionary-ID標頭中的伺服器提供的字典id。 Use-As-Dictionary實驗性-
列出該字典在未來請求中可以使用的匹配標準。
隱私
DNT已棄用 非標準-
一個請求標頭,指示使用者的跟蹤偏好(Do Not Track)。已棄用,推薦使用全域性隱私控制(GPC),透過
Sec-GPC標頭與伺服器通訊,並可透過navigator.globalPrivacyControl供客戶端訪問。 Tk已棄用 非標準-
一個響應標頭,指示應用於相應請求的跟蹤狀態。與 DNT 結合使用。
Sec-GPC非標準 實驗性-
指示使用者是否同意網站或服務向第三方出售或共享其個人資訊。
安全
Origin-Agent-Cluster實驗性-
一個響應標頭,用於指示相關的
Document應被放置在源鍵控的 代理叢集中。這種隔離允許使用者代理更有效地為代理叢集分配實現特定的資源,例如程序或執行緒。
伺服器傳送事件
NEL實驗性-
定義了一種機制,使開發者能夠宣告網路錯誤報告策略。
Topics API
Topics API 提供了一種機制,供開發者實現如興趣導向廣告(IBA)等用例。更多資訊請參閱 Topics API 文件。
Observe-Browsing-Topics實驗性 非標準-
一個響應標頭,用於在對由啟用 Topics API 的功能生成的請求的響應中,將從呼叫方網站的 URL 推斷出的興趣主題標記為已觀察到。
Sec-Browsing-Topics實驗性 非標準-
一個請求標頭,隨相關請求一起傳送當前使用者選擇的主題,廣告技術平臺使用這些主題來選擇要顯示的個性化廣告。
其他
Accept-Signature實驗性-
客戶端可以傳送
Accept-Signature標頭欄位來表示意圖利用任何可用的簽名,並指示其支援的簽名型別。 Early-Data實驗性-
指示請求已在 TLS 早期資料中傳輸。
Set-Login實驗性-
由聯合身份提供者(IdP)傳送的響應標頭,用於設定其登入狀態,即是否有任何使用者在當前瀏覽器上登入到該 IdP。此狀態由瀏覽器儲存,並由 FedCM API 使用。
Signature實驗性-
Signature標頭欄位傳達了交換的簽名列表,每個簽名都附有關於如何確定該簽名的權威性和如何重新整理該簽名的資訊。 Signed-Headers實驗性-
Signed-Headers標頭欄位標識了一個有序的響應標頭欄位列表,以包含在簽名中。 Speculation-Rules實驗性-
提供一個指向包含推測規則JSON 定義的文字資源的 URL 列表。當響應是 HTML 文件時,這些規則將被新增到文件的推測規則集中。
-
包含一個或多個來自導致推測的推測規則的標籤值,以便伺服器可以識別是哪個規則導致了推測,並可能阻止它們。
Supports-Loading-Mode實驗性-
由導航目標設定,以選擇使用各種更高風險的載入模式。例如,跨源、同站點的預渲染需要
Supports-Loading-Mode值為credentialed-prerender。
非標準標頭
X-Forwarded-For非標準-
標識透過 HTTP 代理或負載均衡器連線到 Web 伺服器的客戶端的原始 IP 地址。
X-Forwarded-Host非標準-
標識客戶端用於連線到您的代理或負載均衡器的原始請求主機。
X-Forwarded-Proto非標準-
標識客戶端用於連線到您的代理或負載均衡器的協議(HTTP 或 HTTPS)。
X-DNS-Prefetch-Control非標準-
控制 DNS 預取,這是一種瀏覽器主動對使用者可能選擇關注的連結以及文件引用的專案(包括影像、CSS、JavaScript 等)的 URL 進行域名解析的功能。
X-Robots-Tag非標準-
X-Robots-TagHTTP 標頭用於指示網頁應如何在公共搜尋引擎結果中被索引。該標頭等同於<meta name="robots">元素。