@JRuiCoder
2016-03-13T05:40:12.000000Z
字数 2326
阅读 1419
存储机制
A cookie is a small stub of information left by a website on a visitor's computer through the web browser.
HTTP cookie,通常称为cookie,用于在客户端存储会话信息。
一般有以下几部分组成
set cookie: name=value; domain=.mozilla.org; expires=Feb, 13-Mar-2018 11:47:50; path=/; secure
function setCookie(name,value,expiredate,domain,path,secure){var cookieText=escape(name)+"="+escape(value);if(expiredate){var exdate=new Date();exdate.setDate(exdate.getDate()+expiredate);cookieText+=";expires="+exdate.toGMTString();}if(domain){cookieText+=";domain="+domain;}if(path){cookieText+=";path="+path;}if(secure){cookieText+=";secure";}document.cookie=cookieText;}
把这六个参数传入进去,或者传入几个参数就可以了,必须传入的参数为name和value。
调用的方式可以如下:
setCookie("my","hello world","January 1,2017");
function getCookie(name){var cookieName=encodeURIComponent(name)+"=",cookieStart=document.cookie.indexOf(cookieName),cookieValue=null;if(cookieStart>-1){var cookieEnd=document.cookie.indexOf(";",cookieStart);if(cookieEnd==-1){cookieEnd=document.cookie.Length;}cookieValue=decodeURIComponent(document.cookie.substring(cookieStart+document.cookie.length,cookieEnd));}return cookieValue;}
主要的思路是通过找到字符串的开头和结尾,然后通过substring()函数把value值提取出来。
function deCookie(name,value,expiredate,domain,path,secure){this.setCookie(name,"",new Date(0),domain,path,secure);}
重新定义cookie,把时间调为过去,原先的cookie就会失效,value也被设置为空值,这样就可以删除一个cookie。
IE和Opera会删除最近最少使用过的cookie,但是Firefox是随机决定要清除哪个cookie。
大多数浏览器4096B的长度限制,为了兼容多种浏览器,最好将长度限制在4095B以内.
每个domain最多只能有20条cookie。
Cookie文件中可能含有涉密信息,可能会导致信息泄露。
Cookie可以被改写,欺骗服务程序或者搜集资料从事非法活动。