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

Dav*_*ner 4 browser cookies session

我读到的关于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的实际生命周期是否未在标准中真正定义?

Seb*_*Seb 7

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

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

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