Session 网络浏览器是否应删除所有`会话';(到期日=0)退出时的Cookie?

Session 网络浏览器是否应删除所有`会话';(到期日=0)退出时的Cookie?,session,cookies,browser,Session,Cookies,Browser,我读到的关于cookie的所有内容都说,将cookie的过期时间设置为零应该使其成为“会话”cookie,浏览器将在退出时删除它 他说: “…通常会话是浏览器打开的时间长度…” 说: 如果设置为0或省略,cookie将在会话结束时(浏览器关闭时)过期 然而,在Firefox(3.0.8)中的一些实验表明: 设置为会话和安全的Cookie在退出时被删除 设置为仅会话的Cookie在退出时不会被删除 Opera(9.64)的行为与我预期的一样,在退出时删除会话cookie,无论设置是否安全 我希

我读到的关于cookie的所有内容都说,将cookie的过期时间设置为零应该使其成为“会话”cookie,浏览器将在退出时删除它

他说:

“…通常会话是浏览器打开的时间长度…”

说:

如果设置为0或省略,cookie将在会话结束时(浏览器关闭时)过期

然而,在Firefox(3.0.8)中的一些实验表明:

  • 设置为会话和安全的Cookie在退出时被删除
  • 设置为仅会话的Cookie在退出时不会被删除
Opera(9.64)的行为与我预期的一样,在退出时删除会话cookie,无论设置是否安全

我希望能够在我正在开发的web应用程序中依赖这一点(将安全cookie和不安全cookie作为“登录”标志,并让它们一起过期,实时或会话为0),但似乎即使它在标准中,浏览器也没有足够的一致性来依赖它:/


这是浏览器中的错误、预期行为和/或标准中没有真正定义会话cookie的实际生存期吗?

您永远不应该依赖客户端功能。

您正在使用的功能通常在客户端和服务器端存储会话ID(其ID、他是否登录、他的个人信息等)


还要记住,每个请求中都会发送cookie,因此存储在cookie中的cookie越少越好。

请注意,“永不依赖”并不意味着您不能尝试利用客户端功能。设置cookie到期时间,但要确保服务器端代码能够处理旧的无效cookie。完全同意dwc。您可以利用客户端功能;只是不要认为它们总是可以用于每个用户和每个请求。这是我完全忽略的一个非常重要的点。假设在所有浏览器中都能使用到期日,我总是会遇到这个问题。我想我必须找到另一种方法来做到这一点。。。到目前为止,它看起来相当优雅:/