gpt4 book ai didi

java - cookie.setMaxAge 奇怪的行为

转载 作者:行者123 更新时间:2023-12-02 00:10:19 24 4
gpt4 key购买 nike

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

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

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

我对某些浏览器的某些版本有一种非常奇怪的行为,它们会永远重定向。 (有些有效,有些无效)。

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

不幸的是,这是一个生产服务器,我无法轻松更改它(正在请求它,但需要一些时间)。

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

我的问题是:

  1. 哪些信息会发送到浏览器(关于 cookie 过期
    date),它是绝对日期还是相对于当前日期时间?。
  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 发送到服务器。

关于java - cookie.setMaxAge 奇怪的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12957902/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com