繁体   English   中英

cookie.setMaxAge奇怪的行为

[英]cookie.setMaxAge strange behaviour

我在一个基于jsp的网站上工作,该网站需要启用cookie才能进行导航(它是一个内部网站,不会暴露于Internet)。

用户的首次访问将返回302到所请求的相同网址,并设置一个小时的cookie。

我正在使用Cookie.setMaxAge(60*60); 设置到期日期。

在某些版本的浏览器中,它们永远重定向,我的行为很奇怪。 (有些工作,有些不工作)。

经过大量调查,我们发现服务器中的时间未设置为正确的时间,并且将其时间设置为过去的两个半小时,结果导致Cookie可能“过期”,因为它被设置。 (这是我的疑问)

不幸的是,这是一台生产服务器,我无法轻松对其进行更改(有人提出要求,但需要一些时间)。

为了确认这是问题所在,我将客户端计算机的时间更改为过去两个半小时,并且开始在该计算机上正常工作。

我的问题是:

  1. 什么信息发送到浏览器(关于cookie到期
    日期),它是绝对日期还是相对于当前时间?
  2. 如果Cookie连同到期日期一起过期,浏览器是否会发送?或者如果Cookie过期,浏览器不会发送它们吗? (我认为是第二种选择)。
  3. 因为我在使用某些浏览器时遇到了麻烦,并且与其他浏览器一起工作,所以不知道这是问题所在,无论是在应用服务器还是在浏览器中?

[编辑]

在按照Arham的建议阅读RFC 6265之后,服务器可以将到期日期设置为绝对或相对。 如果两者都存在,则以亲戚为准。 我正在使用的应用服务器将cookie设置为绝对值(这可能是错误的),因此我不了解它在某些浏览器中的工作方式。

[/编辑]

提前致谢。

  1. 根据RFC 1123,日期以“ Wdy,DD Mon YYYY HH:MM:SS GMT”的形式指定。
  2. 根据RFC 6265,cookie的有效期与浏览器收到cookie的时间有关。
  3. 一旦Cookie过期,浏览器就会删除它,因此它无法将相同的Cookie发送到服务器。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM