Jor*_*dan 13 javascript http xmlhttprequest http-headers
W3C是否指定XMLHttpRequest可以设置哪些HTTP头?如果是这样,他们是否出于安全原因发布了证明这些要求的文件?
是否由浏览器自行决定限制HTTP标头?如果是这样,是否有在线文档或文档集合列出了不同XHR实现的怪癖,或者是否有必要在每个实现的文档中找到该信息?
W3C有关于标题允许的规范setRequestHeader
如果header是以下标头之一的不区分大小写的匹配项,请终止这些步骤:
- 接收字符
- 接受编码
- 访问控制请求报头
- 访问控制请求法
- 连接
- 内容长度
- 曲奇饼
- COOKIE2
- 内容传输编码
- 日期
- 期望
- 主办
- 活着
- 起源
- 引荐
- TE
- 预告片
- 传输编码
- 升级
- 用户代理
- 通过
...或者如果标头的开头是Proxy-或Sec-的不区分大小写匹配(包括标头只是代理或秒).
上述标题由用户代理控制,以便控制传输的这些方面.这在一定程度上保证了数据完整性.不允许将以Sec-开头的头名称设置为允许新的头文件被保证不会来自XMLHttpRequest.
你也可以考虑:
如果header不在author-request-headers列表中,则追加标题及其与列表的关联值并终止这些步骤.
关于浏览器的实现,我发现了这个不错的测试:https://dvcs.w3.org/hg/webapps/diff/5814514eeba4/tests/XMLHttpRequest/setrequestheader-header-forbidden.htm,你无法用来查找当前的差异.
例如,IE对头文件的安全性有这样的定义:
IE:有关标准标题的一般列表,请参阅RFC2616,第14节:标题字段定义.服务器最终负责尊重请求的标头.到目前为止,最常见的请求标头是Content-Type,这是某些XML Web服务所需要的.