HTTP / 2响应标题字段不在Google Chrome中的Pascal案例中
我在Google Chrome版本55.0.2883.95(64位)和版本Mozilla 50.1.0上遇到了相同的URL(由于客户机密无法披露该URL),但浏览器Google Chrome和Mozilla上的响应标题字段不同。
Google Chrome上的回复如下: -
HTTP / 2 200 access-control-allow-origin:* content-encoding:gzip content-type:application / json; charset = UTF-8
标题字段不在Pascal Case中,但对Mozilla的响应是: -
HTTP / 2 200 Access-Control-Allow-Origin:* Content-Encoding:gzip Content-Type:application / json; charset = UTF-8
标题字段在Pascal情况下。
现在我知道每篇文章RFC2616第4.2节(https://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html - sec4.2),它说
“每个标题字段由一个名称后跟一个冒号(”:“)和字段值组成。 字段名称不区分大小写。 ”
但是,我的客户在他的应用程序上运行了一些自定义缓存库,如果Content-Encoding标头不在Pascal的情况下,它会开始抱怨。
任何想法可能是一个可能的修复? 提前致谢 :)
HTTP / 2规范清楚地表明头必须转换为小写先前编码。
根据HTTP / 2规范,在浏览器上,两个浏览器均以小写形式接收响应头。
看起来Chrome浏览器将标题名称原样传递给应用程序层,而Firefox试图恢复Pascal情况,至少对于已知的标题名称。
您可以向任一浏览器提交问题,但我怀疑它会被解决。
真正的问题是客户的缓存库损坏,应该考虑到HTTP头名从一开始就不区分大小写的事实。
根据您所使用的技术,您可以做的是编写一个适配器层,在访问破碎的缓存库之前执行Pascal大小写转换。
链接地址: http://www.djcxy.com/p/71833.html上一篇: HTTP/2 response header field not in Pascal Case in Google Chrome