首页 > 语言 > JavaScript > 正文

JavaScript数据存储 Cookie篇

2024-05-06 14:55:08
字体:
来源:转载
供稿:网友

1.什么是cookie?
    答:cookie是用于在客户端存储会话信息的。
2.cookie的组成部分?
    ①名称:一个唯一确定cookie 的名称。建议区分大小写。cookie 的名称必须是经过URL 编码的。
    ②值:储存在cookie 中的字符串值。值必须被URL 编码。
    ③域:cookie 对于哪个域是有效的。所有向该域发送的请求中都会包含这个cookie 信息。这个值可以包含子域(subdomain,如www.wrox.com),也可以不包含它(如.wrox.com,则对于wrox.com的所有子域都有效)。如果没有明确设定,那么这个域会被认作来自设置cookie 的那个域。
    ④路径:对于指定域中的那个路径,应该向服务器发送cookie。例如,你可以指定cookie 只有从http://www.wrox.com/books/ 中才能访问,那么http://www.wrox.com 的页面就不会发送cookie 信息,即使请求都是来自同一个域的。
    ⑤失效时间:表示cookie 何时应该被删除的时间戳。默认情况下,浏览器会话结束时即将所有cookie 删除;不过也可以自己设置删除时间。这个值是个GMT 格式的日期(Wdy, DD-Mon-YYYY HH:MM:SS GMT),用于指定应该删除cookie 的准确时间。因此,cookie
    可在浏览器关闭后依然保存在用户的机器上。如果你设置的失效日期是个以前的时间,则cookie 会被立刻删除。
    ⑥安全标志:指定后,cookie 只有在使用SSL 连接的时候才发送到服务器。例如,cookie 信息只能发送给https://www.wrox.com,而http://www.wrox.com 的请求则不能发送cookie。
3.列举一个cookie的例子?
    以下是一个完整的cookie的例子,我们将把它分解开来:
    Set-Cookie: name=value; expires=Mon, 22-Jan-07 07:10:24 GMT; domain=.wrox.com; path=/; secure
    ①名称: name字符串表示
    ②值:value字符串表示
    ③过期时间:Mon, 22-Jan-07 07:10:24 GMT
    ④域名:.wrox.com
    ⑤路径:当前目录/
    ⑥安全标志:secure
4.如何操作cookie?
 

  var CookieUtil = {    // 设置cookie    set : function (name, value, expires, domain, path, secure) {      var cookieText = "";      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;    },    // name=value; expires=expiration_time; path=domain_path; domain=domain_name; secure    // 获取cookie    get : function (name) {      var cookieName = encodeURIComponent(name) + "=",        cookieStart = document.cookie.indexOf(cookieName),        cookieValue = "";      if (cookieStart > -1) {        var cookieEnd = document.cookie.indexOf (";", cookieStart);        if (cookieEnd == -1) {          cookieEnd = document.cookie.length;        }        cookieValue = decodeURIComponent(document.cookie.substring(cookieStart + cookieName.length, cookieEnd));      }      return cookieValue;     },    // 删除cookie    unset : function (name, domain, path, secure) {      this.set(name, "", Date(0), domain, path, secure);    }  };  // 测试  CookieUtil.set("name", "zhang");  var name = CookieUtil.get("name");  alert(name);  // zhang  CookieUtil.unset("name");  alert(CookieUtil.get("name")); // 空            
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选