2012-01-17 92 views
6

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

回答

21

Cookies是两种不同类型的:

  • 会话cookie,保存在内存中,并且到期一次浏览器退出
  • 永久性Cookie,它有一个时间到现场,持久保存在磁盘上,并由浏览器发送,直到其生存时间过去。

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

+2

关闭浏览器是什么意思?现在浏览器总是处于打开状态,您可以关闭浏览器选项卡或浏览器窗口,但仍不会使cookie过期 – Filype 2016-09-05 18:41:06

3

是的,会话cookie在会话结束时到期 - 但这不是唯一的cookie类型。一个cookie可以有一个过期日期集合,使其有一个更长的生命周期 - 一个“持久”cookie。

5

主要有两种类型的饼干。会话和持久cookie。

会话cookie通常在关闭浏览器时被删除。会话cookie通常用于跟踪登录信息,购物车等。

持久性cookie也被称为跟踪cookie。他们经常被广告商用来追踪你已经看过的广告。它也用于某些网页,以记住关于您的信息,例如自动登录和自动填充表单以及常用的详细信息(例如您的登录名)。当达到最大使用期限或到期日期时,会删除持久性Cookie。

有关不同cookie类型的更多信息,请参阅Wikipedia - HTTP cookie

0

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

在PHP杀一个cookie,你这里有一个很好的教程 http://php.net/manual/en/function.setcookie.php

1

要完成答案:

网站识别用户通过使用关闭浏览器后,

  • 永久性Cookie
  • 闪光的cookies(本地共享对象)
  • ETags(http 1.1)
0

这是因为cookie设置了过期时间。直到指定的时间,浏览器是否关闭,它才会过期。

2

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

在浏览器会话似乎已关闭之后,浏览器会话仍可能在后台运行。

IE中的浏览器崩溃可能导致隐藏的会话打开。在谷歌浏览器中,一些扩展程序使用关闭浏览器后保留的“隐藏页面”。在Mac上,没有经验的用户可能会认为他们通过点击X关闭了浏览器,但他们忽略了单击Safari> Quit Safar或Command-Q。

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

相关问题