以下内容属于个人理解,如有错误欢迎指正。
cookie:为了辨别用户身份而进行的session跟踪存储在本地终端上的数据。
cookie的工作原理:
初次:
服务器 —(写入信息)—> 客户端
以后:
客户端 —(cookies)—> 服务器
服务器 —(HTML代码)—> 客户端
cookies信息:
name:cookie名称
value:对应cookie名称的值
domain:可以访问此cookie的域名,若非当前设置的域名则无法访问
path:可以访问此cookie的页面路径。比如domain设置为二级域名abc.com,path是/test,那么只有/test路径下的页面能访问cookie值
expires/Max-Age:cookie超时时间。若不设置默认值是Session,即和Session一起失效
补充:
如果max-age属性为正数,则表示该cookie会在max-age秒之后自动失效。浏览器会将max-age为正数的cookie持久化,即写到对应的cookie文件中。无论客户关闭了浏览器还是电脑,只要还在max-age秒之前,登录网站时该cookie仍然有效。
如果max-age为负数,则表示该cookie仅在本浏览器窗口以及本窗口打开的子窗口内有效,关闭窗口后该cookie即失效。max-age为负数的Cookie,为临时性cookie,不会被持久化,不会被写到cookie文件中。cookie信息保存在浏览器内存中,因此关闭浏览器该cookie就消失了。cookie默认的max-age值为-1。
如果max-age为0,则表示删除该cookie。cookie机制没有提供删除cookie的方法,因此通过设置该cookie即时失效实现删除cookie的效果。失效的Cookie会被浏览器从cookie文件或者内存中删除。
size:cookie大小
secure:设置是否只能通过https来传递此条cookie。(布尔值)
js对cookie值得操作:
获取Cookies:
function getCookie(name){
var arr,reg=new RegExp("(^|)"+name+"=([^;]*)(;|$)");
if(arr=document.cookie.match(reg)){
return unescape(arr[2]);
}else{
return null;
}
}
getCookie("name");
设置Cookies:
function setCookie(name,value){
var Days=30;
var exp=new Date();
exp.setTime(exp.getTime()+Days*24*60*60*1000);//超时时间
document.cookie=name+"="+escape(value)+";expires="+exp.toGMTString();
}
setCookie("name",123);
删除Cookies:
function delCookies(name){
var exp=new Date();
exp.setTime(exp.getTime()-1);//设置超时时间,类删除
var cval=this.getCookie(name);
if(cval!=null){
document.cookie=name+"="+escape(value)+";expires="+exp.toGMTString();
}
}
delCookies("name");
参考网站: