RFC6256,HTTP State Management Mechanism
HTTP
头部Cookie
在响应中经过Set-Cookie
头部告知客户端(容许多个Set-Cookie
头部传递多个值)Cookie
后,后续请求都会自动将Cookie
头部携带至请求中Cookie
与 Set-Cookie
头部的定义Cookie头部中能够存放多个 name/value 名值对浏览器
Cookie:cookie-name=cookie-value;cookie-name=cookie-value;
Set-Cookie
头部一次只能传递1个name/value
名值对,可是响应中能够含多个头部Set-Cookie
安全
Set-Cookie:cooke-name=cookie-value;cookie-av
Set-Cookie:cooke-name=cookie-value;cookie-av;cookie-av
Set-Cookie:cooke-name=cookie-value;cookie-av;cookie-av
cookie-av
,cookie 描述的可选属性,好比到期时间、所属域名,所在路径等expires
:cookie 到期时间max-age
:cookie存活秒数。(比expires
优先级更高)domain
:cookie可用于哪些域名。默承认以访问当前域名path
:指定 path 路径下才能使用 cookiesecure
:只用使用 TLS/SSL
协议(https
)时才能使用cookiehttponly
:不能使用JavaScript (Document.cookie、XMLHttpRequest、Request APIs)访问到cookie
import requests url = "https://www.baidu.com/" headers = { 'User-Agent': "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36", 'Host': "www.baidu.com", } response = requests.get(url, headers=headers) cookies_jar = response.cookies cookies = dict(cookies_jar) print(cookies_jar) print(cookies) # 获得结果 # <RequestsCookieJar[<Cookie BAIDUID=77BB8AC6AD49976703A431DD42C26C9E:FG=1 for .baidu.com/>, <Cookie BAIDUID_BFESS=77BB8AC6AD49976707A3990E04310903:FG=1 for .baidu.com/>, <Cookie BIDUPSID=77BB8AC6AD49976707A3990E04310903 for .baidu.com/>, <Cookie H_PS_PSSID=1440_33046_33059_31253_33099_33101_32958_26350 for .baidu.com/>, <Cookie PSTM=1606203000 for .baidu.com/>, <Cookie BDSVRTM=0 for www.baidu.com/>, <Cookie BD_HOME=1 for www.baidu.com/>]> # {'BAIDUID': '77BB8AC6AD49976703A431DD42C26C9E:FG=1', 'BAIDUID_BFESS': '77BB8AC6AD49976707A3990E04310903:FG=1', 'BIDUPSID': '77BB8AC6AD49976707A3990E04310903', 'H_PS_PSSID': '1440_33046_33059_31253_33099_33101_32958_26350', 'PSTM': '1606203000', 'BDSVRTM': '0', 'BD_HOME': '1'}
RFC 规范对浏览器使用 Cookie
的要求服务器
Cookie
的长度(包括name、value以及描述的属性等总长度)至少能支持4kb
50
个Cookie
3000
个Cookie
Cookie
时会有限制Cookie
会被附加在每一个 HTTP 请求中,因此无形中增长了流量Cookie
是明文传递的,因此安全性成问题(除非用https)Cookie
的大小不该超过4kb
,故对于复杂的存储需求来讲是不够用的。