我知道
X-
历史上曾被用作非标准标头的约定,现在建议反对。这些天我看到越来越多以 Sec-
开头的标题,例如 Sec-WebSocket-*
、Sec-CH-UA
、Sec-Fetch-*
,以及现在的 Sec-GPC
。但是,我找不到任何专门讨论此约定的 RFC。那么,这个约定从何而来,它代表什么(安全?),其目的是什么?
Sec-
标头被称为“禁止响应标头名称”,如 获取元数据请求标头 - 4.2 中定义。 Sec- 前缀
4.2。 Sec- 前缀
本文档中定义的每个标头都以
为前缀,这使得它们全部成为 禁止的响应标头名称,因此无法通过 JavaScript 进行修改。这将防止恶意网站说服用户代理随请求一起发送伪造的元数据,这应该让网站对其合理响应广告信息的能力更有信心。Sec-
另请参阅禁止的标头名称:
A forbidden header name 是任何不能以编程方式修改的 HTTP 标头的名称;具体来说,是 HTTP request 标头名称(与 Forbidden 响应标头名称相反)。
禁止修改此类标头,因为用户代理保留对它们的完全控制。以
开头的名称保留用于创建安全的新标头,这些标头允许开发人员控制标头,例如Sec-
。fetch()