禁止的頭部名稱
**禁止的請求頭名稱** 是任何HTTP 請求頭的名稱,這些名稱不能透過程式設計方式修改;具體來說,是指 HTTP **請求** 頭名稱(與禁止的響應頭名稱相對)。
禁止修改此類請求頭,因為使用者代理完全控制著它們。以Sec-開頭的名稱保留用於建立新的請求頭,以防止API(如fetch())賦予開發人員控制請求頭的許可權。
禁止的請求頭名稱以Proxy-或Sec-開頭,或以下名稱之一:
Accept-CharsetAccept-EncodingAccess-Control-Request-HeadersAccess-Control-Request-MethodConnectionContent-LengthCookieDateDNTExpect主機Keep-Alive來源Permissions-PolicyProxy-Sec-RefererTETrailerTransfer-EncodingUpgradeVia
**注意:**根據規範,User-Agent請求頭不再被禁止(此功能在 Firefox 43 中實現),現在可以在 Fetch 的Headers物件中或透過XMLHttpRequest的setRequestHeader()方法來設定。但是,Chrome 會從 Fetch 請求中靜默刪除此請求頭(請參閱Chromium bug 571722)。
**注意:**雖然Referer請求頭在規範中被列為禁止的請求頭,但使用者代理並不會完全控制它,並且可以對其進行程式設計修改。例如,當使用fetch()時,可以透過referrer選項以程式設計方式修改Referer請求頭。
另請參閱
- 相關詞彙表術語