Cookie存儲(chǔ)在客戶端,Cookie存儲(chǔ)的數(shù)據(jù)量有限,不同的瀏覽器存儲(chǔ)容量也不同,一般不超過4KB,因此Cookie只能存儲(chǔ)一些少量的數(shù)據(jù)。
Cookie可以保持用戶的登錄信息,待用戶下次訪問同一網(wǎng)站時(shí),會(huì)發(fā)現(xiàn)不必輸入用戶名和密碼就已經(jīng)登錄了。但有一些Cookie在用戶退出會(huì)話的時(shí)候就被刪除了(用戶也可手工刪除本地Cookie),這樣可以有效保護(hù)個(gè)人隱私。
Cookie在生成時(shí)會(huì)被指定一個(gè)Expire值,這就是Cookie的生存周期,在這個(gè)周期內(nèi)Cookie有效,超出周期Cookie就會(huì)被清除。有些頁(yè)面將Cookie的生存周期設(shè)置為0或負(fù)值,這樣在關(guān)閉瀏覽器時(shí)就馬上清除Cookie,不會(huì)記錄用戶信息,更加安全。
Cookie所具有的屬性一般包括以下幾項(xiàng)。
·Domain:域,表示當(dāng)前Cookie屬于哪個(gè)域或子域。對(duì)于服務(wù)器返回的Set-Cookie,如果沒有指定Domain的值,那么其Domain的值默認(rèn)為當(dāng)前所提交的HTTP請(qǐng)求所對(duì)應(yīng)的主域名。例如訪問http://www.example.com,返回一個(gè)Cookie,如果沒有指名Domain的值,那么其值為默認(rèn)的www.example.com。
·Path:表示Cookie的所屬路徑。
·Expire time/Max-age:Cookie的有效期。Expire time的值是一個(gè)時(shí)間,過了這個(gè)時(shí)間該Cookie就失效了;或者是用Max-age指定當(dāng)前Cookie在多長(zhǎng)時(shí)間之后失效。如果服務(wù)器返回的一個(gè)Cookie沒有指定其Expire time,那么表明此Cookie的有效期只是當(dāng)前的Session,即Session Cookie,當(dāng)前Session會(huì)話結(jié)束后就過期了。對(duì)應(yīng)的,當(dāng)關(guān)閉(瀏覽器中)該頁(yè)面的時(shí)候,此Cookie就被瀏覽器刪除了。
·secure:表示該Cookie只能用HTTPS傳輸。一般用于包含認(rèn)證信息的Cookie,要求傳輸此Cookie的時(shí)候必須用HTTPS傳輸。
·httponly:表示此Cookie必須用于HTTP或HTTPS傳輸。這意味著瀏覽器腳本(如JavaScript中)是不允許訪問操作Cookie的。
對(duì)于一些需要輸入驗(yàn)證碼才能登錄的網(wǎng)站,可以采用Cookie來解決問題。
·獲取Cookies的方法:get_cookies();
·獲取指定name的Cookie:driver.get_cookie(name);
·清除Cookie:delete_cookie()。