小型文本文件祠墅,大小4kb左右难审,是由鍵值對構(gòu)成沙绝,鍵值對中間用分號+空格來隔開
服務(wù)器端設(shè)置慢蜓,打開瀏覽器調(diào)試工具在Application選擇Cookies選項
屬性
作用域
作用路徑
讀取
function getcookie(){
var cookie = {};
var all = document.cookie;
if(all === ''){ return cookie;}
var list = all.split(';');
for(var i=0;i<list.length;i++){
var item = list[i];
var p = item.indexOf('=');
var name = item.substring(0,p);
name = decodeURIComponent(name);
var value = item.substring(p + 1);
value = decodeURIComponent(value);
cookie[name] = value;
}
return cookie;
}
- indexOf 返回第一個與給定參數(shù)相等的數(shù)組元素的索引亚再,沒有找到則返回-1。
- split()把字符串分割為字符串?dāng)?shù)組晨抡。
- substring()提取字符串中兩個指定的索引號之間的字符氛悬。
- decodeURIComponent()函數(shù)可對encodeURIComponent()函數(shù)編碼的URI進(jìn)行解碼。
設(shè)置/修改
function setCookie (name, value, expires, path, domain, secure) {
var cookie = encodeURIComponent(name) + '=' + encodeURIComponent(value);
if (expires)
cookie += '; expires=' + expires.toGMTString();
if (path)
cookie += '; path=' + path;
if (domain)
cookie += '; domain=' + domain;
if (secure)
cookie += '; secure=' + secure;
document.cookie = cookie;
}
toGMTString() 方法可根據(jù)格林威治時間 (GMT) 把 Date 對象轉(zhuǎn)換為字符串耘柱,并返回結(jié)果如捅。
function removeCookie (name, path, domain) {
document.cookie = name + '='
+ '; path=' + path
+ '; domain=' + domain
+ '; max-age=0';
}
缺陷
- cookie的作用:
一定程度上彌補(bǔ)了http無狀態(tài)協(xié)議對交互式web應(yīng)用的影響,它可以使用客戶端存儲部分信息调煎,維護(hù)用戶和服務(wù)器會話中的狀態(tài)镜遣。 - cookie的弊端:
流量代價,每個請求都要帶上cookie士袄;采用明文傳輸帶來的安全問題悲关;大小限制谎僻,最多只能存儲4kb左右。 - 可替代方案:
Web storage HTML5的新特性寓辱,提供在客戶端本地存儲會話數(shù)據(jù)艘绍,比cookie方便且存儲容量更大。