创建一个在关闭浏览器前有效的cookie(会话cookie?)

3 投票
2 回答
6538 浏览
提问于 2025-04-16 15:46

我对在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这个设置:

http://mrcoles.com/blog/cookies-max-age-vs-expires/

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

撰写回答