【发布时间】:2011-11-13 20:04:37
【问题描述】:
我读到的关于 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 的实际生命周期没有在标准中真正定义吗?
【问题讨论】: