W3C是否指定XMLHttpRequest可以设置哪些HTTP头?如果是这样,他们是否出于安全原因发布了证明这些要求的文件?
浏览器是否可以自行决定限制HTTP标头?如果是这样,是否有在线文档或文档集合列出了不同XHR实现的怪癖,或者是否有必要在每个实现的文档中找到该信息?
答案 0 :(得分:6)
W3C对setRequestHeader
如果header是一个不区分大小写的匹配项,则终止这些步骤 以下标题:
- Accept-Charset
- 接受编码
- 访问控制请求报头
- 访问控制请求方法
- 连接
- 内容长度
- 曲奇
- Cookie2
- Content-Transfer-Encoding
- 日期
- 期望
- 主持人
- 保持活动
- 来源
- Referer的
- TE
- 拖车
- 转移编码
- 升级
- 用户代理
- 经
...或者如果标头的开头是Proxy-或。的不区分大小写的匹配 Sec-(包括标题只是代理或秒)。
上述标题由用户代理控制,以便让它控制 运输的那些方面。 这可以保证某些人的数据完整性 范围。不允许将以Sec-开头的标题名称设置为 允许新的标题被铸造,保证不会来自 XMLHttpRequest的。
你也可以考虑:
如果标题不在author-request-headers列表中追加标题及其与列表的关联值,则终止这些步骤。
关于浏览器的实施,我发现了这个不错的测试:https://dvcs.w3.org/hg/webapps/diff/5814514eeba4/tests/XMLHttpRequest/setrequestheader-header-forbidden.htm,你不能用来找到当前的差异。
例如, IE 在标头上定义了安全性:
IE:有关标准标题的一般列表,请参阅RFC2616, Section 14:标题字段定义。服务器最终负责尊重请求的标头。到目前为止,最常见的请求标头是Content-Type,这是某些XML Web服务所需要的。