禁止的头部名称
**禁止的请求头名称** 是任何HTTP 请求头的名称,这些名称不能通过编程方式修改;具体来说,是指 HTTP **请求** 头名称(与禁止的响应头名称相对)。
禁止修改此类请求头,因为用户代理完全控制着它们。以Sec-
开头的名称保留用于创建新的请求头,以防止API(如fetch()
)赋予开发人员控制请求头的权限。
禁止的请求头名称以Proxy-
或Sec-
开头,或以下名称之一:
Accept-Charset
Accept-Encoding
Access-Control-Request-Headers
Access-Control-Request-Method
Connection
Content-Length
Cookie
Date
DNT
Expect
主机
Keep-Alive
来源
Permissions-Policy
Proxy-
Sec-
Referer
TE
Trailer
Transfer-Encoding
Upgrade
Via
**注意:**根据规范,User-Agent
请求头不再被禁止(此功能在 Firefox 43 中实现),现在可以在 Fetch 的Headers对象中或通过XMLHttpRequest
的setRequestHeader()方法来设置。但是,Chrome 会从 Fetch 请求中静默删除此请求头(请参阅Chromium bug 571722)。
**注意:**虽然Referer
请求头在规范中被列为禁止的请求头,但用户代理并不会完全控制它,并且可以对其进行编程修改。例如,当使用fetch()
时,可以通过referrer
选项以编程方式修改Referer
请求头。
另请参阅
- 相关词汇表术语