一般来说,当给定一个没有有效期的cookie时,现代浏览器会认为这个cookie是一个"会话cookie",他们会在浏览会话结束时删除cookie(通常是在浏览器实例关闭时).
IE,Opera,Safari和Chrome都支持这种行为.
然而,firefox(3.0.9最新版本)似乎没有遵循这条规则,我可以告诉它在浏览器关闭时,或者当用户注销或重新启动操作系统时不会使cookie过期.
那么,为什么firefox将它们称为会话cookie,当它们无限期地持续存在时呢?
有谁知道Firefox如何处理会话cookie过期?
这显然是设计上的.看看这个Bugzilla错误:https://bugzilla.mozilla.org/show_bug.cgi ? id = 443354
Firefox具有关闭Firefox的功能,它可以保存所有选项卡,然后恢复浏览器并返回这些选项卡.那叫做会话恢复.我没有意识到它也将恢复这些页面的所有会话cookie!它就像你从未关闭浏览器一样对待它.
这在某种意义上是有道理的,如果你的浏览器崩溃了,你就会回到原来的位置,但对于用于会话cookie的web开发者来说,这有点令人不安.几个月前我有一些旧的会话cookie,这些cookie是由我总是在标签中打开的网站设置的.
要对此进行测试,请关闭浏览器中的所有选项卡,然后关闭浏览器并重新启动它.我认为在这种情况下,您网站的会话cookie应该清楚.否则你必须关闭会话恢复.
两个想法:
您的会话管理器(FF3中包含的一个或扩展中包含的一个,如tabmixplus)有问题
使用Firebug + FireCookie(https://addons.mozilla.org/en-US/firefox/addon/6683)进行调试!