Web浏览器是否应该在退出时删除所有`session'(expiry = 0)cookie?

时间:2009-04-15 15:21:14

标签: session cookies browser

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

http://www.cookiecentral.com/faq/说:

  

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

http://php.net/manual/en/function.setcookie.php说:

  

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

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

  • 设置为会话的Cookie和安全在退出时删除
  • 仅设置为会话的Cookie会在退出时删除

Opera(9.64)表现如我所料,在退出时删除会话cookie,无论是否设置为安全。

我希望能够在我正在处理的网络应用程序中依赖它(将一个安全的cookie和一个不安全的cookie作为“登录”标志并让它们一起过期,或者实时或0为会话),但似乎即使它在标准中,然后浏览器不够一致,不能依赖它:/

这是浏览器中的错误,预期行为,和/或标准中未真正定义的会话Cookie的实际生命周期?

1 个答案:

答案 0 :(得分:7)

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

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

另外请记住,每次请求都会发送cookie,因此存储在cookie中的越少越好。