[关闭]
@JRuiCoder 2016-03-13T05:40:12.000000Z 字数 2326 阅读 1419

Cookie

存储机制


一、 什么是cookie

A cookie is a small stub of information left by a website on a visitor's computer through the web browser.

HTTP cookie,通常称为cookie,用于在客户端存储会话信息。

二、 cookie的构成

一般有以下几部分组成

set cookie: name=value; domain=.mozilla.org; expires=Feb, 13-Mar-2018 11:47:50; path=/; secure

三、cookie常见操作

1. cookie的建立

  1. function setCookie(name,value,expiredate,domain,path,secure){
  2. var cookieText=escape(name)+"="+escape(value);
  3. if(expiredate){
  4. var exdate=new Date();
  5. exdate.setDate(exdate.getDate()+expiredate);
  6. cookieText+=";expires="+exdate.toGMTString();
  7. }
  8. if(domain){
  9. cookieText+=";domain="+domain;
  10. }
  11. if(path){
  12. cookieText+=";path="+path;
  13. }
  14. if(secure){
  15. cookieText+=";secure";
  16. }
  17. document.cookie=cookieText;
  18. }

把这六个参数传入进去,或者传入几个参数就可以了,必须传入的参数为name和value。
调用的方式可以如下:

  1. setCookie("my","hello world","January 1,2017");

2.cookie的查询

  1. function getCookie(name){
  2. var cookieName=encodeURIComponent(name)+"=",
  3. cookieStart=document.cookie.indexOf(cookieName),
  4. cookieValue=null;
  5. if(cookieStart>-1){
  6. var cookieEnd=document.cookie.indexOf(";",cookieStart);
  7. if(cookieEnd==-1){
  8. cookieEnd=document.cookie.Length;
  9. }
  10. cookieValue=decodeURIComponent(document.cookie.substring(cookieStart+document.cookie.length,cookieEnd));
  11. }
  12. return cookieValue;
  13. }

主要的思路是通过找到字符串的开头和结尾,然后通过substring()函数把value值提取出来。

3.cookie的删除

  1. function deCookie(name,value,expiredate,domain,path,secure){
  2. this.setCookie(name,"",new Date(0),domain,path,secure);
  3. }

重新定义cookie,把时间调为过去,原先的cookie就会失效,value也被设置为空值,这样就可以删除一个cookie。

四、 cookie的应用

五、cookie优点

  1. 通过良好的编程,控制保存在cookie中的session对象的大小。
  2. 通过加密和安全传输技术(SSL),减少cookie被破解的可能性。
  3. 只在cookie中存放不敏感数据,即使被盗也不会有重大损失。
  4. 控制cookie的生命期,使之不会永远有效。偷盗者很可能拿到一个过期的cookie。、
  5. 不需要服务器资源,直接存储在本地。

六、cookie缺点

1. 每个域的cookie总数是有限的,不同浏览器之间各有不同。

2.cookie的清理

IE和Opera会删除最近最少使用过的cookie,但是Firefox是随机决定要清除哪个cookie。

3. cookie大小的限制

大多数浏览器4096B的长度限制,为了兼容多种浏览器,最好将长度限制在4095B以内.
每个domain最多只能有20条cookie。

4. 安全性

Cookie文件中可能含有涉密信息,可能会导致信息泄露。
Cookie可以被改写,欺骗服务程序或者搜集资料从事非法活动。

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注