Python 解析 set-cookie 响应头
在PHP中,我发送了一个带有安全和仅限HTTP标志的cookie,还有一个没有这些标志的cookie。
setcookie("c2","value");
setcookie("c1","value", 0, "/", "", true, true);
这会产生一个头部信息。
Set-Cookie: c2=value, c1=value; path=/; secure; httponly
在firebug中,我可以看到,这没问题(c1的安全标志是对的,c2是错的)。
我想知道哪个cookie没有使用安全标志。
我的Python代码:
cookies = Cookie.SimpleCookie()
cookies.load(headers['set-cookie'])
print cookies
Output:
Set-Cookie: c1=value; Path=/\\r\\nSet-Cookie: c2=value
headers['set-cookie'] 确实包含了原始的set-cookie头部信息,这没问题。根据Python的文档,打印(当作字符串处理)SimpleCookie实例应该能创建set-cookie头部。问题是,在解析原始头部后,有些东西缺失了。
而且,Morsels也包含了错误的值(安全和仅限HTTP)。
这是某种配置错误,还是Python库中的一个bug呢?谢谢 :)
1 个回答
1
这可能有点晚了,但我看到你的问题,觉得你可能还是需要帮助。
我用来读取cookie的代码是:
import Cookie,os
def getCookieData():
try:
cookie = Cookie.SimpleCookie(os.environ["HTTP_COOKIE"])
session = cookie['usrSession'].value
return session
except (Cookie.CookieError, KeyError):
return None
我的cookie字符串大概是这样的:
Cookie: usrSession=12345
希望这能帮到你