禁止修改的标头
禁止修改的标头指的是不能在代码中通过编程的方式进行修改的 HTTP 标头,具体指 HTTP 请求标头(和禁止修改的响应标头形成对比)。
因为用户代理保留对此类标头的完全控制,所以它们被禁止修改。保留以 Sec- 开头的名称,以用于在使用 fetch 算法的请求中创建安全的新标头,这些 API 授予开发人员对标头的控制权,例如:XMLHttpRequest。
禁止修改的标头包括以 Proxy- 和 Sec- 开头的标头,以及下面列出的标头:
Accept-CharsetAccept-EncodingAccess-Control-Request-HeadersAccess-Control-Request-MethodConnectionContent-LengthCookieDateDNTExpectPermissions-PolicyHostKeep-AliveOriginProxy-Sec-RefererTETrailerTransfer-EncodingUpgrade(en-US)Via
备注: 根据规范中的禁止修改的标头列表(Firefox 43 中实现了它),User-Agent 标头不再被禁止,现在可以设置在 Fetch 的 Headers 对象中,或者通过 XMLHttpRequest 的 setRequestHeader() 方法设置。但是,Chrome 会不做提示地从 Fetch 请求中丢弃这个标头(请参阅 Chromium bug 571722)。
参见
禁止修改的响应标头(术语表)