【问题标题】:Why cookies dont expire after closing browser?为什么关闭浏览器后cookies不会过期?
【发布时间】:2012-02-12 05:37:27
【问题描述】:

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

【问题讨论】:

    标签: session cookies


    【解决方案1】:

    是的,会话 cookie 在会话结束时过期 - 但这不是唯一的 cookie 类型。 cookie 可以设置一个过期日期,从而延长它的生命周期 - 一个“持久”cookie。

    【讨论】:

      【解决方案2】:

      Cookie 有两种不同的类型:

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

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

      【讨论】:

      • 关闭浏览器是什么意思?这些天浏览器始终处于打开状态,您可以关闭浏览器选项卡或浏览器窗口,但仍然不会使 cookie 过期
      【解决方案3】:

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

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

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

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

      【讨论】:

        【解决方案4】:

        每个cookie都有一个过期时间,如果你没有设置一个特定的值,它将接受默认值。一个cookie只有在这个过期时间之后才会过期,不管你是否关闭浏览器。您可以通过将负值设置为过期时间来终止 cookie

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

        【讨论】:

          【解决方案5】:

          完成答案:

          网站在关闭浏览器后识别用户

          • 持久性 cookie
          • flash cookie (LSO)
          • ETag (http 1.1)

          【讨论】:

            【解决方案6】:

            这是因为 cookie 设置了到期时间。无论浏览器是否关闭,它都不会在指定时间到期。

            【讨论】:

              【解决方案7】:

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

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

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

              这在使用 cookie 进行登录时尤其重要。这已成为我们使用 Sharepoint 2013 和 ADFS 的问题。希望这可以帮助!

              【讨论】:

                【解决方案8】:

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

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

                为此,必须发生以下事情之一:

                1) 您可以重新启动计算机

                2) 或者您或您的用户长按系统托盘上的浏览器图标,然后选择退出或关闭所有窗口选项(取决于您使用的是 Mac 还是 Windows)

                实际上,我知道这不是您想看到和发现的问题的症结所在,但事实就是如此。

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

                不应该这样设计。 关闭所有实例应该就足够了。

                【讨论】:

                  猜你喜欢
                  • 1970-01-01
                  • 2016-12-13
                  • 1970-01-01
                  • 2017-01-04
                  • 1970-01-01
                  • 2012-01-21
                  • 1970-01-01
                  • 2013-10-11
                  • 1970-01-01
                  相关资源
                  最近更新 更多