簡單地說,cookie 就是瀏覽器儲存在用戶電腦上的一小段文本文件。cookie 是純文本格式,不包含任何可執行的代碼。一個 Web 頁面或服務器告知瀏覽器按照一定規范來儲存這些信息,并在隨后的請求中將這些信息發送至服務器,Web 服務器就可以使用這些信息來識別不同的用戶。大多數需要登錄的網站在用戶驗證成功之后都會設置一個 cookie,只要這個 cookie 存在并可以,用戶就可以自由瀏覽這個網站的任意頁面。再次說明,cookie 只包含數據,就其本身而言并不有害。
Cookie使用場景:
用戶在請求網站的時候服務器會返回cookie信息到瀏覽器,瀏覽器得到cookie 信息以后會保存起來;以后訪問我們的站點都是把我們保存好的cookie信息通過頭信息的方式發送給服務端,那么服務端得到cookie信息以后就可以驗證我們是否是登錄狀態。
Cookie特性:
1,不同的瀏覽器存放的cookie位置不一樣,也是不能通用的;也就是說你在firefox下設置的cookie,在chrome下是無法訪問到的;
2,cookie的存儲是以域名的形式進行區分的;
3,一個域名下存放的cookie的個數是有限制的,不同的瀏覽器存放的個數不一樣;
4,每個cookie存放的內容大小也是有限制的,不同瀏覽器存放大小不一樣;
5,由于在HTTP請求中的cookie是明文傳遞的,所以安全性成問題。(除非用HTTPS);
6,Cookie的大小限制在4KB左右。對于復雜的存儲需求來說是不夠用的;
7,cookie會被附加在每個HTTP請求中,所以無形中增加了流量;
Cookie的使用:
1,設置Cookie:
document.cookie = '1701H=41'; //默認關閉瀏覽器進程Cookie消失
2,獲取Cookie:
document.cookie;
3,設置Cookie過期時間,時間必須是字符串格式(兼容IE):
var oDate = new Date();
oDate.setDate(oDate.getDate() + 5);
document.cookie = '1701H = 41人;expires = ' + oDate.toGMTString();
4,內容最好以encodeURI編碼存放:
document.cookie = '1701H = ' + encodeURI('41人');
5,解碼Cookie:
decodeURI(document.cookie)
Cookie常用方法封裝:
1,設置Cookie:
function setCookie(key, val, t) {
var oDate = new Date();
oDate.setDate(oDate.getDate() + t);
document.cookie = key + '=' + val + ';expires=' + oDate.toGMTString();
}
2,獲取Cookie:
function getCookie(key) {
var arr1 = document.cookie.split('; ');
for(var i=0; i<arr1.length; i++) {
var arr2 = arr1[i].split('=');
for(var j=0;j<arr2.length; j++) {
if(arr2[0] == key) {
return decodeURI(arr2[1]);
}}}}
3,刪除Cookie:
function removeCookie(key) {
setCookie(key, '', -1);
}