小型文本文件,大小4kb左右,是由键值对构成,键值对中间用分号+空格来隔开
服务器端设置,打开浏览器调试工具在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 返回第一个与给定参数相等的数组元素的索引,没有找到则返回-1。
- split()把字符串分割为字符串数组。
- substring()提取字符串中两个指定的索引号之间的字符。
- decodeURIComponent()函数可对encodeURIComponent()函数编码的URI进行解码。
设置/修改
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() 方法可根据格林威治时间 (GMT) 把 Date 对象转换为字符串,并返回结果。
function removeCookie (name, path, domain) {
document.cookie = name + '='
+ '; path=' + path
+ '; domain=' + domain
+ '; max-age=0';
}
缺陷
- cookie的作用:
一定程度上弥补了http无状态协议对交互式web应用的影响,它可以使用客户端存储部分信息,维护用户和服务器会话中的状态。 - cookie的弊端:
流量代价,每个请求都要带上cookie;采用明文传输带来的安全问题;大小限制,最多只能存储4kb左右。 - 可替代方案:
Web storage HTML5的新特性,提供在客户端本地存储会话数据,比cookie方便且存储容量更大。
网友评论