cookie的构成:
名称:一个唯一确定cookie的名称。cookie的名称必须是经过URL编码的。
值:存储在cookie中的字符串值。值必须被URL编码。
域:cookie对于哪个域是有效的。所有向该域发送的请求中都会包含这个cookie信息。
路径:对于指定域中的那个路径,应该向服务器发送cookie。
失效时间:表示cookie何时应该被删除的时间戳(也就是,何时应该停止向服务器发送这个cookie)。默认情况下,浏览器会话结束时即将所有cookie删除;不过也可以自己设置删除时间。
安全标志:指定后,cookie只有在使用SSL连接的时候才发送到服务器。
基本的cookie操作:读取、写入、删除
var CookieUtil={
get: function(name){
var cookieName=encodeURIComponent(name)+"=",
cookieStart=document.cookie.indexOf(cookieNmae),
cookieEnd=null;
if(cookieStart>-1){
cookieEnd=document.cookie.indexOf(";",cookieStart);
if(cookieEnd==-1){
cookieEnd=document.cookie.length;
}
cookieValue=decodeURIComponent(document.cookie.substring(cookieStart+cookieName.length,cookieEnd));
return cookieValue;
}
},
set: function(name,value,expires,path,domain,secure){
var cookieText=encodeURIComponent(name)+"="+encodeURIComponent(value);
if(expires instanceof Date){
cookieText+="; expires="+expires.toGMTString();
}
if(path){
cookieText+="; path="+path;
}
if(domain){
cookieText+="; domain="+domain;
}
if(secure){
cookieText+="; secure";
}
document.cookie=cookieText;
},
unset: function(name,path,domain,secure){
this.set(name,"",new Date(0),path,domain,secure);
}
};
//设置cookie
CookieUtil.set("name","Nicholas");
//读取cookie
console.log(CookieUtil.get("name"));
//删除cookie
CookieUtil.unset("name");
//设置cookie,包括它的路径、域、失效时间
CookieUtil.set("name","Nicholas","/books/projs","www.wrox.com",new Date("January 1,2010"));
//删除上面设置的cookie
CookieUtil.unset("name","/books/projs/","www.wrox.com");
//设置安全的cookie
CookieUtil.set("name","Nicholas",null,null,null,true);
cookie的作用:
HTTP协议是一种无状态的协议,在数据交换完毕之后,服务器与客户端就会断开连接,每次请求数据都需要重新建立连接。所以cookie在客户端记录用户的信息和行为。
cookie的弊端:
1.存在安全问题
2.数据数量和长度有限制
3.增加流量消耗,每次请求都会携带cookie,数据多也会影响性能