一個域名下面可能存在着很多個cookie對象。如果我們用selenium的get_cookies方法,可以得到當前瀏覽器的多個cookie,比如:
{'name': 'QCARJSESSIONID', 'value': 'DgH6ctvRhc1DGVvf0wp2x1pTLlV6Ltl8sgVQGhnCnNG32BFxnpP1!1426878101', 'path': '/', 'domain': 'qcar.apiins.com', 'secure': False, 'httpOnly': True} {'name': 'BIGipServercar_qcar_poool', 'value': '1191316140.16671.0000', 'path': '/', 'domain': 'qcar.apiins.com', 'secure': False, 'httpOnly': False} {'name': 'chinainsuranceJSESSIONID', 'value': 'fPvQctvTtbw3lMGwvN1FkSFQWp5srg6mW11cL9BnGgCgk97cvNZK!2078734058', 'path': '/', 'domain': 'qcar.apiins.com', 'secure': False, 'httpOnly': True} {'name': 'BIGipServercar_core_pool', 'value': '1191316140.17951.0000', 'path': '/', 'domain': 'qcar.apiins.com', 'secure': False, 'httpOnly': False}
這是一個cookie解析之后,它對應的字段的意義是什么呢?
name 字段為一個cookie的名稱。
value 字段為一個cookie的值。
domain 字段為可以訪問此cookie的域名。
非頂級域名,如二級域名或者三級域名,設置的cookie的domain只能為頂級域名或者二級域名或者三級域名本身,不能設置其他二級域名的cookie,否則cookie無法生成。
頂級域名只能設置domain為頂級域名,不能設置為二級域名或者三級域名,否則cookie無法生成。
二級域名能讀取設置了domain為頂級域名或者自身的cookie,不能讀取其他二級域名domain的cookie。所以要想cookie在多個二級域名中共享,需要設置domain為頂級域名,這樣就可以在所有二級域名里面或者到這個cookie的值了。
頂級域名只能獲取到domain設置為頂級域名的cookie,其他domain設置為二級域名的無法獲取。
path 字段為可以訪問此cookie的頁面路徑。 比如domain是abc.com,path是/test,那么只有/test路徑下的頁面可以讀取此cookie。
expires/Max-Age 字段為此cookie超時時間。若設置其值為一個時間,那么當到達此時間后,此cookie失效。不設置的話默認值是Session,意思是cookie會和session一起失效。當瀏覽器關閉(不是瀏覽器標簽頁,而是整個瀏覽器) 后,此cookie失效。
Size 字段 此cookie大小。
http 字段 cookie的httponly屬性。若此屬性為true,則只有在http請求頭中會帶有此cookie的信息,而不能通過document.cookie來訪問此cookie。
secure 字段 設置是否只能通過https來傳遞此條cookie