创建一个在关闭浏览器前有效的cookie(会话cookie?)
我对在Python中创建和设置cookie有一些了解。但是我不太确定怎么创建一个在当前浏览器会话结束时就会消失的cookie(这样我就能简单判断用户是否再次访问我的网站)。
那么,我应该设置哪个cookie的头信息,才能确保这个cookie在浏览器关闭时就过期/删除呢?我应该使用SimpleCookie对象,还是其他的对象呢?
这个讨论提到在PHP中设置cookie_lifetime标志/头信息,但在Python中该怎么做呢? http://bytes.com/topic/php/answers/595383-how-declare-cookie-will-destroy-after-browser-closed
这样做会创建一个在浏览器关闭时过期的cookie吗?
cookie = Cookie.SimpleCookie()
cookie["test"] = "MYTEST"
cookie["test"]['expires'] = 0 # or shd I set the max-age header instead?
print str(cookie) + "; httponly"
2 个回答
1
麦克,
我觉得你的回答是对的。在Morsel对象上设置“expires”= 0应该能达到你想要的效果。你测试过了吗?
看起来IE浏览器不支持max-age这个设置:
5
只需完全省略“过期”这个值,也就是说,不要给它设置任何值。想了解更多细节,可以查看维基百科的相关条目:
Set-Cookie: made_write_conn=1295214458; path=/; domain=.foo.com
[...]
第二个cookie made_write_conn没有设置过期时间,这就意味着它是一个会话cookie。用户关闭浏览器后,这个cookie会被删除。
在Python中:
In [11]: from Cookie import SimpleCookie
In [12]: c = SimpleCookie()
In [13]: c['test'] = 'MYTEST'
In [14]: print c
Set-Cookie: test=MYTEST