【发布时间】:2012-02-12 05:37:27
【问题描述】:
在与 Web 编程相关的书籍和教程中,cookie 在用户关闭浏览器时过期。所以我不明白为什么在关闭浏览器(Opera)后我可以在“参数”窗口中看到我的 cookie 列表。以及关闭浏览器后网站(例如 Facebook)如何识别用户(会话 cookie 必须根据书籍和教程过期)?
【问题讨论】:
在与 Web 编程相关的书籍和教程中,cookie 在用户关闭浏览器时过期。所以我不明白为什么在关闭浏览器(Opera)后我可以在“参数”窗口中看到我的 cookie 列表。以及关闭浏览器后网站(例如 Facebook)如何识别用户(会话 cookie 必须根据书籍和教程过期)?
【问题讨论】:
是的,会话 cookie 在会话结束时过期 - 但这不是唯一的 cookie 类型。 cookie 可以设置一个过期日期,从而延长它的生命周期 - 一个“持久”cookie。
【讨论】:
Cookie 有两种不同的类型:
【讨论】:
有两种主要的 cookie。会话和持久 cookie。
会话 cookie 通常会在您关闭浏览器时被删除。会话 cookie 通常用于跟踪登录信息、购物车等。
持久性 cookie 也称为跟踪 cookie。广告商经常使用它们来跟踪您已经观看过的广告。它还用于一些网页来记住有关您的信息,例如自动登录和自动填写常用详细信息(例如您的登录名)的表单。当达到最长期限或到期日期时,将删除持久性 cookie。
有关不同 cookie 类型的更多信息,请访问Wikipedia - HTTP cookie。
【讨论】:
每个cookie都有一个过期时间,如果你没有设置一个特定的值,它将接受默认值。一个cookie只有在这个过期时间之后才会过期,不管你是否关闭浏览器。您可以通过将负值设置为过期时间来终止 cookie
在 php 中你有一个很好的教程 http://php.net/manual/en/function.setcookie.php
【讨论】:
完成答案:
网站在关闭浏览器后识别用户
【讨论】:
这是因为 cookie 设置了到期时间。无论浏览器是否关闭,它都不会在指定时间到期。
【讨论】:
在某些情况下,关闭浏览器后 cookie 似乎没有过期,因为事实上并非所有浏览器实例都已关闭。
在许多情况下,浏览器会话在看似已关闭后仍可能在后台运行。
IE 中的浏览器崩溃可能会使隐藏的会话保持打开状态。在 Google Chrome 中,某些扩展程序使用在关闭浏览器后仍然存在的“隐藏页面”。在 Mac 上,没有经验的用户可能认为他们通过单击 X 关闭了浏览器,但他们忽略了单击 Safari > Quit Safar 或 Command-Q。
这在使用 cookie 进行登录时尤其重要。这已成为我们使用 Sharepoint 2013 和 ADFS 的问题。希望这可以帮助!
【讨论】:
我听到了兄弟。可悲但冷酷的现实是……关闭浏览器并不意味着关闭浏览器。
在此处关闭浏览器意味着终止该浏览器品牌背后的进程以及所有实例。
为此,必须发生以下事情之一:
1) 您可以重新启动计算机
2) 或者您或您的用户长按系统托盘上的浏览器图标,然后选择退出或关闭所有窗口选项(取决于您使用的是 Mac 还是 Windows)
实际上,我知道这不是您想看到和发现的问题的症结所在,但事实就是如此。
即使没有可见的浏览器实例,大男孩仍在内存中,除非您强制退出该进程,否则您的 cookie 仍在会话中。
不应该这样设计。 关闭所有实例应该就足够了。
【讨论】: