关闭浏览器后为什么cookie不会过期?

时间:2012-01-17 12:00:42

标签: session cookies

在与Web编程相关的书籍和教程中写道,当用户关闭浏览器时,cookie将过期。所以我无法理解为什么在关闭浏览器(Opera)之后我可以在“参数”窗口中看到我的cookie列表。以及关闭浏览器后会话(例如Facebook)如何标识用户(会话cookie必须根据书籍和教程过期)?

8 个答案:

答案 0 :(得分:27)

Cookie有两种不同的类型:

  • 会话cookie,保存在内存中,一旦浏览器退出就会过期
  • 持久性cookie,具有生存时间,持久存储在磁盘上,由浏览器发送,直到它们的生存时间过去。

阅读http://en.wikipedia.org/wiki/HTTP_cookie

答案 1 :(得分:9)

有两种主要的cookie。会话和持久性cookie。

关闭浏览器时,通常会删除

会话Cookie 。会话cookie通常用于跟踪登录信息,购物车等。

持久性Cookie 也称为跟踪Cookie。广告客户经常使用它们来跟踪您已观看过的广告。它还用于某些网页以记住有关您的信息,例如自动登录和自动填写表单以及常用的详细信息(例如您的登录名)。当达到最大年龄或到期日期时,将删除持久性cookie。

有关不同Cookie类型的详细信息,请参阅Wikipedia - HTTP cookie

答案 2 :(得分:5)

是的,会话cookie在会话结束时到期 - 但这不是唯一的cookie类型。 Cookie可以设置过期日期,使其寿命更长 - 一个“持久”Cookie。

答案 3 :(得分:2)

在某些情况下,关闭浏览器后,Cookie似乎不会过期,因为实际上并非所有浏览器实例都已关闭。

在许多情况下,浏览器会话似乎已在关闭后仍在后台运行。

IE中的浏览器崩溃可能会使隐藏的会话保持打开状态。在谷歌浏览器中,某些扩展程序使用在关闭浏览器后仍然存在的“隐藏页面”。在Mac上,没有经验的用户可能会认为他们已经通过单击X关闭了浏览器,但是他们忽略了单击Safari>退出Safar或Command-Q。

在使用Cookie进行登录时尤其如此。这对于我们使用Sharepoint 2013和ADFS来说已成为一个问题。希望这可以帮助!

答案 4 :(得分:1)

完成答案:

使用

关闭浏览器后,网站会识别用户
  • 持久性cookies
  • flash cookies(LSOs)
  • ETags(http 1.1)

答案 5 :(得分:0)

每个cookie都有一个到期时间,如果您没有设置特定值,它将接受默认值。无论您是否关闭浏览器,cookie都将在此到期时间后到期。您可以通过将负值设置为到期时间来终止cookie

在php中你有一个很好的教程 http://php.net/manual/en/function.setcookie.php

答案 6 :(得分:0)

因为cookie设置了到期时间。它将在指定的时间后关闭,无论浏览器是否关闭。

答案 7 :(得分:0)

我听到你的兄弟。悲伤但冷酷的现实是......关闭浏览器并不意味着关闭浏览器。

此处关闭浏览器意味着终止该浏览器品牌背后的进程以及所有实例。

要实现这一目标,必须采取以下措施之一:

1)您要么重新启动计算机

2)或您或您的用户长按系统托盘上的浏览器图标,然后选择退出或关闭所有WINDOWS选项(取决于您是在Mac上还是在Windows上)< / p>

实际上,我知道这不是你想看到的,而是发现问题的症结所在,但它就是它的本质。

即使没有可见的浏览器实例,大男孩仍然在内存中,除非你强行退出该过程,否则你的cookie仍在会话中。

这不应该是这样设计的。 关闭所有实例应该已经足够了。