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
,故對於複雜的存儲需求來講是不夠用的。