当前位置:  开发笔记 > 编程语言 > 正文

HTTP / 2响应标头字段不在Google Chrome中的Pascal Case中

如何解决《HTTP/2响应标头字段不在GoogleChrome中的PascalCase中》经验,为你挑选了1个好方法。

我在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:*内容编码:gzip内容类型:application / json; charset = UTF-8

标头字段不在Pascal Case中,但Mozilla的响应为:-

HTTP / 2 200 Access-Control-Allow-Origin:*内容编码:gzip内容类型:application / json; charset = UTF-8

标头字段为Pascal情况。

现在我知道这是每条RFC2616第4.2节(https://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html-sec4.2),其中说

“每个标题字段均由名称,后跟冒号(“:”)和字段值组成。字段名称不区分大小写。

但是我的客户在他的应用程序上运行了一些自定义缓存库,如果Content-Encoding标头不在Pascal情况下,它将开始抱怨。

有什么可能的解决方案的主意吗?提前致谢 :)



1> sbordet..:

的HTTP / 2规范是明确的事实,报头必须被转换为小写事先编码。

根据HTTP / 2规范,两种浏览器都通过有线方式接收响应标头。

看起来Chrome会将标头名称原样传递给应用程序层,而Firefox则尝试还原Pascal大小写,至少是针对已知的标头名称。

您可以向任一浏览器提交问题,但我怀疑会解决该问题。

真正的问题是客户的缓存库损坏,应该从一开始就考虑到HTTP标头名称不区分大小写的事实。

根据所使用的技术,您可以做的是编写一个适配器层,该层在访问损坏的缓存库之前执行标头名称的Pascal大小写转换。

推荐阅读
mylvfamily
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有