Jac*_*cob 3 java cookies jetty java-ee
事实证明,在Jetty中,当你附加一个cookie时,它不仅会向HTTP响应头添加一个cookie,它还会改变Expires HTTP头的值!
((HttpServletResponse)response).addCookie(cookie);
Run Code Online (Sandbox Code Playgroud)
我需要Jetty停止使用正确/正确的到期设置.
另一方面,是否有一个特殊/充分的理由让它表现得像这样?我的猜测是Jetty假设如果设置了cookie,内容总是动态的,因此应设置为过期,以便不缓存.
更新:使用Jetty 8.1.8.v20121106进行测试
刚刚浏览了Jetty 8代码库.以下是代码库中的情况,其中Expires(作为HTTP响应标头)被强制为某个值,或者如果存在则被删除.
这就是Expires作为HTTP响应标头.
但是,由于您指出了这一点.addCookie()
,我想指出,还有一个Cookie规范Expires标头,作为Cookie值字符串的一部分,在响应的Set-Cookie逻辑中找到.
如果Cookie.setMaxAge()
值为0或更大,这将强制Cookie Expires标头.这样做是为了解决各种浏览器错误,Max-Age=
直到Expires=
Cookie值也提供这些错误.
Cookie的默认行为:
Cookie.setMaxAge(-1);
将禁用Max-Age=
和Expires=
Cookie.setMaxAge(0);
将导致Expires=00:00:00 UTC on 1 January 1970
(unix时代的开始)Cookie.setMaxAge(60000);
将来会导致Expires=
1分钟.版本1 Cookie行为(又名Cookie.setVersion(1)
):
Cookie.setMaxAge(-1);
将禁用Max-Age=
和Expires=
Cookie.setMaxAge(0);
将导致Max-Age=0
和Expires=00:00:00 UTC on 1 January 1970
(unix时代的开始)Cookie.setMaxAge(60000);
将导致Max-Age=60000
和Expires=
在未来1分钟. 归档时间: |
|
查看次数: |
1194 次 |
最近记录: |