cookie

作者: cooore | 来源:发表于2016-07-08 21:02 被阅读0次

    小型文本文件,大小4kb左右,是由键值对构成,键值对中间用分号+空格来隔开

    服务器端设置,打开浏览器调试工具在Application选择Cookies选项

    属性

    作用域

    作用路径

    读取

    function getcookie(){
        var cookie = {};
        var all = document.cookie;
        if(all === ''){ return cookie;}
        var list = all.split(';');
        for(var i=0;i<list.length;i++){
            var item = list[i];
            var p = item.indexOf('=');
            var name = item.substring(0,p);
            name = decodeURIComponent(name);
            var value = item.substring(p + 1);
            value = decodeURIComponent(value);
            cookie[name] = value;
        }
        return cookie;
    }
    
    • indexOf 返回第一个与给定参数相等的数组元素的索引,没有找到则返回-1。
    • split()把字符串分割为字符串数组。
    • substring()提取字符串中两个指定的索引号之间的字符。
    • decodeURIComponent()函数可对encodeURIComponent()函数编码的URI进行解码。

    设置/修改

    function setCookie (name, value, expires, path, domain, secure) {
        var cookie = encodeURIComponent(name) + '=' + encodeURIComponent(value);
        if (expires)
            cookie += '; expires=' + expires.toGMTString();
        if (path)
            cookie += '; path=' + path;
        if (domain)
            cookie += '; domain=' + domain;
        if (secure)
            cookie += '; secure=' + secure;
        document.cookie = cookie;
    }
    

    toGMTString() 方法可根据格林威治时间 (GMT) 把 Date 对象转换为字符串,并返回结果。

    function removeCookie (name, path, domain) {
        document.cookie = name + '='
        + '; path=' + path
        + '; domain=' + domain
        + '; max-age=0';
    }
    

    缺陷

    • cookie的作用:
      一定程度上弥补了http无状态协议对交互式web应用的影响,它可以使用客户端存储部分信息,维护用户和服务器会话中的状态。
    • cookie的弊端:
      流量代价,每个请求都要带上cookie;采用明文传输带来的安全问题;大小限制,最多只能存储4kb左右。
    • 可替代方案:
      Web storage HTML5的新特性,提供在客户端本地存储会话数据,比cookie方便且存储容量更大。

    相关文章

      网友评论

          本文标题:cookie

          本文链接:https://www.haomeiwen.com/subject/ffjrjttx.html