用正则表达式 匹配 Set-Cookie吗?
Netscape的cookie协议 和 标准 cookie 在 RFC 2965 都有定义.
RFC 2109:官方HTTP状态管理规范并取代的老版本,被RFC 2965取代。RFC 2965:官方HTTP状态管理规范。
注意:绝对部分在Internet上的cookies 都是Netscape cookie
rfc2965规范的使用,目前并不多RFC 6265关于 cookie
http://www.webryan.net/2011/08/wiki-of-http-cookie/
['Set-Cookie'].split(';')[0].split('=')[1].strip()) resp.getheader(“Set-Cookie”).split(‘_’)[0]
GAPPProxy 目前对 Cookie 的处理有一些问题,主要出在对 header 中的多个Set-Cookie 域处理错误。
举例,当服务器返回的 header 中有多个 Set-Cookie 域时,比如一般的 wordpress返回的 header 中,Set-Cookie 域至少有三个:
Using comma (",") delimiter instead ";" (semi-colon) in Cookie header by default is not usefulcj=res.getheader('Set-Cookie').split(';')[0]header['Cookie']=cjresp.headers['set-cookie'].split(";")[0].split('=')[1]
请参考
http://zhiwei.li/text/2013/09/python-http-parser/
http://zhiwei.li/text/2008/12/java-httpclient-%E9%BB%98%E8%AE%A4%E5%8F%91%E9%80%81cookie2/
终极方法,就是使用Cookie库
#!/usr/bin/env python# -*- coding: utf-8 -*-import Cookie import os myc = 'sid=9988776655;Expires=Tue, 17-Oct-23 12:26:40 GMT;Path=/;Domain=.zhiwei.li, system=java|;Expires=Tue, 17-Oct-23 12:26:40 GMT;Path=/;Domain=.zhiwei.li, browser_type=2;Expires=Tue, 17-Oct-23 12:26:40 GMT;Path=/;Domain=.zhiwei.li, brt_flag=1;Expires=Tue, 17-Oct-23 12:26:40 GMT;Path=/;Domain=.zhiwei.li'try: cookie = Cookie.SimpleCookie(myc) print "system = " + cookie["system"].valuefor x in cookie:print x, cookie[x].value, cookie[x]['domain']except (Cookie.CookieError, KeyError): print "session cookie not set!" mycookie = Cookie.SimpleCookie(cookies)cookie1 = '; '.join((x + '=' + mycookie[x].value for x in mycookie))cookie2 = '; ' . join( (c.split(';')[0] for c in cookies.split(';Domain=.zhiwei.li, ')))def show_cookie(c): print c for key, morsel in c.iteritems(): print print 'key =', morsel.key print ' value =', morsel.value print ' coded_value =', morsel.coded_value for name in morsel.keys(): if morsel[name]: print ' %s = %s' % (name, morsel[name])
原文地址:python作为客户端如何方便地处理cookie, 感谢原作者分享。 要知道,当你一直在担心错过了什么的时候,