cookie:可以将一些数据存储在用户客户端本地,默认情况下,一个网页是没有任何cookie信息的。
cookie以名/值对形式存储。形式:username = Danny
当浏览器从服务器上请求web页面时,属性该页面的cookie会被添加到该请求中。服务端通过这种方式来获取用户的信息。
注意点:
1.cookie作用范围:一次会话(即浏览器被关闭后,cookie不存在)
2.cookie不能跨浏览器(即在IE中存储中的cookie不能在谷歌中使用)
3.cookie不能跨域(作用域 域名)
eg:http://www.baidu.com:80/a.html
协议://二级域名.一级域名:端口号/资源地址
cookie:必须协议相同/二级域名相同/一级域名相同/端口号相同
如果其中有一个不同,那么cookie都不可以共用
4.一个网页可以设置多个cookie
但每个网页的cookie个数是有限制的(40个左右),每个网站的cookie也是有限制的(200个左右)
5.不能一次性设置多个cookie,要设置多个,必须分开设置
6.可以通过expires = xxx格式来设置过期时间
如果过期时间大于当前时间,则有效;
如果过期时间小于当前时间,则会自动失效
如果cookie是有效的,那么浏览器关闭之后再打开还是有效的
7.由于cookie的数据可以在浏览器中查找到,所以不要将一些敏感的信息保存到cookie中
以下是对cookie方法的封装
//1.添加cookie
function addCookie(key,value,expires){
if(arguments.length == 2){
document.cookie = key+"="+value+"; ";
}else if(arguments.length == 3){
var date = new Date();
date.setDate(date.getDate() + expires);
document.cookie = key+"="+value+"; expires="+date+"; ";
}
}
//2.获取指定cookie的值
function getCookie(key){
var arr = document.cookie.split("; ");
for(var i = 0, len = arr.length; i < len; i++){
var subArr = arr[i].split("=");
if(subArr[0] == key)
return subArr[1];
}
}
//3.删除cookie
function deleteCookie(key){
addCookie(key,getCookie(key),-1);
}