X-XSS-Protection、X-XSRF-TOKEN等HTTP头中首个'X'代表什么含义?
HTTP头「X-」前缀的含义及命名规则说明
- 这里的
X是*eXperimental(实验性)*的缩写,是早年HTTP协议生态里针对扩展头的通用命名约定。
这个约定诞生的背景是早期HTTP标准迭代速度慢,官方标准头的新增流程很长,所以行业默认所有未被纳入正式HTTP标准的自定义扩展头,都统一加
X-前缀和标准头做区分,避免后续官方新增标准头时出现命名冲突。
你提到的两个头都符合这个历史逻辑:
X-XSS-Protection最早是微软在IE8版本推出的浏览器XSS防护特性对应的响应头,推出时还不属于正式HTTP标准,所以加了X-前缀,后续几乎所有主流浏览器都支持了这个特性,命名也直接沿用没有修改。X-XSRF-TOKEN是前后端框架通用的自定义CSRF防护请求头,本身就属于业务/框架层面的私有扩展,不会纳入官方HTTP标准,所以一直保留X-前缀。
现在的通用命名经验法则
2012年IETF已经正式发布规范,不再推荐新的扩展头使用X-前缀——因为很多早年的实验性头已经成为全行业通用的事实标准,带X-反而阻碍了它们后续被纳入正式标准的流程。目前行业遵循的规则如下:
- 已经被广泛使用的带
X-前缀的历史头,直接沿用即可,不需要刻意修改 - 现在新增的私有自定义头,不需要再加
X-前缀,只要命名清晰、不和已有标准头重名即可 - 如果要提交通用头到IETF申请成为正式标准,直接使用不带
X-的命名即可
内容的提问来源于stack exchange,提问作者Jimbo1987
相关产品推荐
相关产品推荐

