了解并封装一个cookie库

cookie最初是在客户端用于存储会话信息的,保存在客户端的。会在浏览器关闭之后被删除。可以以Set-Cookie作为响应头的一部分,也可以以cookie作为请求头的一部分。
限制:

  • 要求每条cookie的大小是由限制的,根据不同的浏览器限制也会不同;
  • 每个域名下cookie的数量是有限制的,根据不同的浏览器限制也会不同;

组成:

  • 名称:一个唯一确定cookie的名称,不区分大小写;
  • 值:存储在cookie中的字符串值。值必须被URI编码;
  • 域:cookie对于哪个域好似有效的,所有向该域发送的请求都会包含这个cookie的信息;
  • 有效时间:表示cookie在这个事件之后就会被删除;
  • 路径:对于指定域中的那个路径;
  • 安全标志:指定后,cookei只有在SSL连接下才会发送到服务器;

注意

  • 每一段信息都作为Set-Cookie的一部分,使用分号加空格分隔每一段;
  • 安全标志secure是cookie中唯一一个非键值对;
  • 键值对是必须的;

封装一个简单的cookie库
这里面需要包含对cookie的添加,获取和删除三个基本的操作。

var CookieUtil = {
    get:function(name) {
        var cookieName = encodeURICompoment(name) + '=',
            cookieValue = null,
            cookieStart = documnet.cookie.indexOf(cookieName);
        if(cookieStart > -1) { // cookie里面存在要获取的name
            var cookieEnd = document.cookie.indexOf(';',cookieStart);//找到这个键值对结束的位置
            if(cookieEnd > -1) { //如果只有这一个键值对
                cookieEnd = document.cookie.length;
            }
            cookieValue = decodeURICompoment(document.cookie.substring(cookieStart + cookieName.length ,cookieEnd));
        }
        return cookieValue;
    };
    set:function(name,value,path,domain,secure,expires){
        var cookieText = encodeURICompoment(name) + '=' + encodeURICompoment(value);
        if(expires instanceof Date) {
            cookieText += '; expires=' + expires.toString();
        }
        if(path) {
            cookieText += '; path=' + path;
        }
        if(domain) {
            cookieText += '; domain=' + domain;
        }
        if(secure) {
            cookieText += '; secure';
        }
        document.cookie = cookieText;
    };
    unset:function(name,path,domain,secure) {
        this.set(name,'',path,domain,secure,new Date(0));
    }   
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值