首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >集-Cookie头在玻璃鱼-5:折叠几个Cookie在一个标题不工作在火狐(https + HTTP/2.0)

集-Cookie头在玻璃鱼-5:折叠几个Cookie在一个标题不工作在火狐(https + HTTP/2.0)
EN

Stack Overflow用户
提问于 2017-08-11 21:01:38
回答 2查看 1.2K关注 0票数 12

我注意到Glassfish-5 web服务器只发送一个Set-Cookie头的响应,其中包含几个cookie。当我用萤火虫看的时候,我可以看到它们被未知的字符分开了。无论如何,Firefox只读取第一个cookie。如何配置Glassfish5以发送多个Set-Cookie头-每个cookie一个?rfc6265声明:

  1. 概述 ...Origin服务器不应将多个Set-Cookie头字段折叠为单个标头字段。通常用于折叠header字段的机制(如RFC2616中定义的那样)可能会更改Set-Cookie标头字段的语义,因为Set以与这种折叠冲突的方式使用%x2C (",")字符。 ..。

此外,这里还指出:

当发送带有多个Cookie的HTTP响应时,CFHTTPMessage将Cookie合并到一个单独的“Set”HTTP报头下的逗号分隔列表中。(这被称为“套装曲奇折叠”。) Google Chrome、Firefox和Internet不支持Set-cookie-折叠。每个浏览器都将完全忽略第一个逗号之后的每个cookie,使得CFHTTPMessage在任何浏览器(支持cookie-折叠)中使用多个cookie处理HTTP响应都是完全无用的。

在firebug上的响应是这样的:

两个饼干是由未知的字符连接在一起的。正如我注意到的--其他服务器,比如Apache,通过新的行字符在一个Set-Cookie头中拆分多个cookie。

我注意到这种情况只发生在HTTPS连接上.

此外,我还在Github 这里上打开了一个问题。

尝试在Tomcat 9 web服务器上运行相同的web应用程序- Set-Cookie头cookies由新的行字符分隔,它的工作方式与预期的一样.

同样的响应,但在Glassfish5上,以及同样的-cookie由未知字符加入,并且不被Firefox接受(仅仅是第一个):

在NetBeans IDE8.2HTTPServerMonitor中,我可以看到发送了2个cookies -它看起来很好:

再次在一组Cookie头中的FireFox -2 Cookie上:

只收到一份-值不正确.:

火狐开发者版也是如此:

完全困惑..。

Glassfish 5使用GrizzlyFramework2.4.0--我认为grizzly-http-servlet-2.4.0-sources.jar中的源代码是可用的--但是找不到一个代码块,其中cookies在一行中被连接在一起。

现在我可以确认,它只与HTTP2.0协议有关,在火狐上通过启用/禁用network.http.spdy.enabled.http2about:config上进行了测试。在HTTP/1.1上,通过HTTPS设置cookie,如预期的那样。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-08-22 14:58:36

你不再需要那个定制的核灰所有. that。这个问题已经发布,作为最近的玻璃鱼5.0夜店和最近的推广建设的一部分。

当我使用Grizzly问题跟踪实际修复并使用GlassFish问题来集成Grizzly时,有两个不同的问题。

票数 1
EN

Stack Overflow用户

发布于 2017-08-17 00:25:07

这个问题现在已经由专业的玻璃鱼团队解决了--我们应该在nucleus-grizzly-all.jar上用新的可用的这里文件来修改文件GitHub。再一次感谢玻璃鱼开发团队!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45643689

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档