cookie

小型文本文件,大小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方便且存储容量更大。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容