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

下一篇: Length" field in HTTP header?