Python 解析 set-cookie 响应头

3 投票
1 回答
6674 浏览
提问于 2025-04-17 22:53

在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

希望这能帮到你

撰写回答