过期时间为"会话结束"的Cookie何时到期?

Sha*_*ngh 47 php cookies

会话cookie的过期时间为"会话结束时".什么时候它到期还是永远活着?

Jam*_*mes 45

" 会话结束后到期 "的Cookie 从用户的角度无法预测到期!

在使用Safari的iOS上,只要您切换应用,它们就会过期!

在使用Chrome的Android上,当您关闭浏览器时,它们不会过期.

在运行Chrome的Windows桌面上,当您关闭浏览器时,它们会过期.当你关闭网站标签时,情况并非如此; 当你关闭所有标签时.如果还有其他浏览器窗口打开,它们也不会过期.如果用户将Windows应用程序作为Windows运行,他们甚至可能不知道它们是浏览器窗口.所以你的cookie的生命取决于用户使用一些看似无关的应用程序做了什么.

  • 我只是想补充一点,它在 Mac 版 Chrome 上不会过期。尽管我已将其设置为“从离开的地方继续”。但是,我已经关闭了该域的浏览器选项卡,然后重新启动了 Chrome。我设置的会话cookie仍然存在。 (4认同)
  • 有没有一个好的网站记录不同的行为? (3认同)
  • 这不是我对 iOS (10.2.1) 的观察 (2认同)
  • @Benedikt https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie (2认同)

min*_*gos 35

当您使用时setcookie,您可以设置到期时间0或只是省略参数 - 然后cookie将在会话结束时(即,当您关闭浏览器时)到期.

  • 请原谅我,我不明白这个问题:/页面A有一个过期时间= 0的cookie,页面B有一个过期时间= 30分钟的cookie.这意味着如果您关闭浏览器,cookie A将被删除,但cookie B将保留.如果您在30分钟内未关闭浏览器,则Cookie B将过期,但Cookie A将保持活动状态.即使在您查看页面B时cookie B到期,在大多数情况下也不会发生任何事情,因为一旦您重新加载页面或访问同一站点中的另一个页面,cookie就可能会重新创建.我希望至少有一些能回答你的问题:| (6认同)

小智 9

只是为了纠正mingos的回答:

如果将到期时间设置为0,则根本不会创建cookie.我至少在Google Chrome上测试了这个,当设置为0时就是结果.我想,cookie会在创建后立即过期.

要设置一个cookie,使其在浏览会话结束时到期,只需简单地OMIT expiration参数即可.

例:

代替:

document.cookie = "cookie_name=cookie_value; 0; path=/";
Run Code Online (Sandbox Code Playgroud)

写吧:

document.cookie = "cookie_name=cookie_value; path=/";
Run Code Online (Sandbox Code Playgroud)


sha*_*mar 8

用户会话结束表示浏览器关闭时.

阅读:http://en.wikipedia.org/wiki/HTTP_cookie#Expires_and_Max-Age

  • 不再。Win10 上的 Chrome 80.0.3987.122 可以关闭,当您打开它时,它会恢复会话。换句话说,您必须注销以确保帐户已关闭。 (4认同)