美文网首页
cookie学习笔记

cookie学习笔记

作者: One_Hund | 来源:发表于2018-03-11 11:43 被阅读0次

一.cookie长什么样

打开chrome控制台,我们可以查看cookie


chrome控制台
Name //名称
Value  //值
Domain = www.jianshu.com //域,设置二级或三级域名,且不能跨域设置
Path = / //路径,一般为“/”表示根目录,"/write"表示子目录
Expire = 2018-03-10T21:32:26.124Z //过期时间(绝对时间)
Max-Age = 36000 //过期时间(相对时间),ie6/7/8有兼容性问题
Secure //只在https下才发送
HttpOnly //不能通过 JS 的 document.cookis 访问

根据过期时间可将cookie分为:
(1)session cookie(临时cookie,关闭浏览器就删除,不设置Expire或Max-Age便生成session cookie,控制台那显示Session)
(2)premanent cookie(持久cookie,到了过期时间才删除,设置Expire或Max-Age便生成premanent cookie,控制台那显示时间)

二.通过JS操作cookie

1.用JS获取cookie

(1)在控制台输入document.cookie便可获取cookie:

"read_mode=day; default_font=font2; _ga=GA1.2.1886567652.1502162633; locale=zh-CN; Hm_lvt_0c0e9d9b1e7d617b3e6842e85b9fb068=1520563415,1520576927,1520586845,1520586886; sensorsdata2015jssdkcross=%7B%22distinct_id%22%3A%2215f32c9cfcb464-090a5a34d92563-31677c00-2073600-15f32c9cfcc64e%22%2C%22%24device_id%22%3A%2215f32c9cfcb464-090a5a34d92563-31677c00-2073600-15f32c9cfcc64e%22%2C%22props%22%3A%7B%22%24latest_traffic_source_type%22%3A%22%E7%9B%B4%E6%8E%A5%E6%B5%81%E9%87%8F%22%2C%22%24latest_referrer%22%3A%22%22%2C%22%24latest_referrer_host%22%3A%22%22%2C%22%24latest_search_keyword%22%3A%22%E6%9C%AA%E5%8F%96%E5%88%B0%E5%80%BC_%E7%9B%B4%E6%8E%A5%E6%89%93%E5%BC%80%22%7D%2C%22first_id%22%3A%22%22%7D; Hm_lpvt_0c0e9d9b1e7d617b3e6842e85b9fb068=1520691212"

可见,返回的是一个字符串(编码状态,需用decodeURIComponent()进行解码),字符串中的每一个都是名值对,每一个名值对都用隔开

(2)如果要获取特定名称的cookie的value时,可用以下的方法:

// 例:name1=value1;name2=value2;name3=value3
// (1)使用普通方法
function getCookie(cname) {
    var name = cname + "=";
    var decodedCookie = decodeURIComponent(document.cookie); //解码
    var ca = decodedCookie.split(';');
    for(var i = 0; i<ca.length ; i++) {
        var c = ca[i];
        while(c.charAt(0) == ' ') {
            c = c.substring(1);
        }
        if(c.indexOf(name) == 0){
            return c.substring(name.length, c.length);
        }
    }
    return "";
}
getCookie('name1'); //返回value1

// (2)使用正则表达式
function getCookie(name) {
    var decodeCookie = decodeURIComponent(document.cookie);
    var reg = new RegExp(name+'=(.*?);');
    var ret = reg.exec(decodeCookie);
    return ret[1];
}
getCookie('name1'); //返回value1

2.用JS增加cookie

  • 用赋值语句来增加cookiie
// (1)简单案例(只用于说明,不推荐,详见(2)一般用法)
// cookie:name1=value1;name2=value2;name3=value3
 document.cookie = "username = mike"
// cookie:name1=value1;name2=value2;name3=value3;username=mike

// (2)一般用法(需进行编码)
 document.cookie = encodeURIComponent('username') + '=' +
                   encodeURIComponent('mike') + //编码
                   '; domain=www.jianshu.com' +  //添加属性
                   '; expires=' + new Date('2030-1-1'); 

3.用JS删除cookie

  • 给cookie赋值一个过去的时间来实现删除
 document.cookie = encodeURIComponent('username') + '=' +
                   encodeURIComponent('mike') + 
                   '; domain=www.jianshu.com' +  
                   '; expires=' + new Date(0);  // 设置一个过去的时间(1970-1-1)

三.cookie的应用

如下图例子所示:使用cookie保存用户登录信息

使用cookie保存用户登录信息

相关文章

  • Cookie是什么

    这两天在学习Cookie的相关知识,这里做一个简单的学习笔记,方便今后回看。 Cookie的含义 Cookie 英...

  • cookie学习笔记

    一.cookie长什么样 打开chrome控制台,我们可以查看cookie 根据过期时间可将cookie分为:(1...

  • 关于登录二三事

    什么是cookie和session(笔记) cookie的基本资料 姓名:cookie国籍:Netscape自我介...

  • [HTTP 学习笔记]Cookie

    Cookie 作用 Cookie 是一段由服务器通过在请求或响应报文发送给客户端的特殊信息,客户端会记录该信息,当...

  • 网页cookie学习笔记

    firefox支持本地查看cookie,其他浏览器需要启动http服务

  • 爬虫笔记(一) - 各种Request请求的对比(Scrapy

    关于Cookie的分析我在爬虫笔记(六) - 关于 Cookie 的分析(Postman Request Sele...

  • okhttp源码解析-网络协议的实现-HTTP之cookie管理

    cookie介绍 cookie 规范 注: 主要参考HTTP cookies 详解,笔记做成思维导图 RFC296...

  • Cookie和Session

    本篇文章简单记录了关于Web会话管理技术的学习笔记。目前常用的会话管理技术是Cookie与SessionCooki...

  • HTML5存储

    HTML5学习笔记 Web存储 HTML5 web存储,一个比cookie更好的本地存储方式。 什么是html5 ...

  • DVWA-CSRF(跨站请求伪造)

    本系列文集:DVWA学习笔记 <跨站请求伪造,是指利用受害者尚未失效的身份认证信息(cookie、会话等),诱骗其...

网友评论

      本文标题:cookie学习笔记

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