美文网首页
Http cookies的用法

Http cookies的用法

作者: 07120665a058 | 来源:发表于2017-05-03 20:55 被阅读336次

首先 ,来了解一下cookie的基本概念


cookie产生过程

  • 当你向服务器发送一个请求时,request header里默认会Cookie属性
  • 如果请求里设置了res.cookie('user',123);,则响应头里会有Set-Cookie属性
  • 浏览器在响应头中发现Set-Cookie字段,就会将该字段的值保存在内存或者硬盘中,默认过期时间是会话期
  • 下一次再请求的时候,request header里会Cookie属性就会多出设置过的cookie值,服务器看到这个值就知道已经打过交道了

cookie 保存什么

  • cookiekey
  • cookievalue
  • 到期时间expires
  • 所属域名domain
  • 生效的路径path

基本用法

  • 创建cookie
document.cookie = "name1=hello";
//一次只能追加写入一个cookie,不会覆盖已有的
  • 获取cookie
let name = document.cookie.split(';');
//一次会获取所有的cookie,所以可根据 ; 来分隔所有属性
  • 删除cookie
document.cookie = name + "=;expires=Thu, 01 Jan 1970 00:00:00 GMT";
//设置一个过去的时间

cookie属性

  • value——指定cookie的值
  • expires——指定cookie过期时间,格式采用Date.toUTCString(),将Date对象转换为字符串
    • 如果不设置该属性,或设置为null,则只在当前会话期有效,浏览器一旦关闭,cookie就会被删除
  • domain——指定cookie所在的域名,如果未指定,默认为设定该cookie的域名
    • 举例:www.baidu.com/test/test.html,那么domain默认是www.baidu.com,并且会对所有子域名有效,也不能设置为google.com,只有访问的域名匹配domain属性,cookie才会发送到服务器
  • path——用来指定路径,如果未指定,默认为请求该 cookie 的网页路径,也就是根目录/
    • 举例:www.baidu.com/test/index.html建立了一个cookie
      那么在 www.baidu.com/test/目录里的所有页面,所有子目录里的页面都可以访问这个cookie
    • 只有path属性匹配向服务器发送的路径,cookie才会发送,path属性生效的前提是domain属性匹配
  • secure——指定cookie只能在加密协议HTTPS下发送到服务器。
  • max-age——指定cookie有效期。
  • HttpOnly——设置该cookie不能被JavaScript读取,即不会在客户端调用``document.cookies中显示出来。

浏览器的同源政策规定,两个网址只要域名相同和端口相同,就可以共享cookie不要求协议相同,也就是说,http://example.com设置的cookie,可以被https://example.com读取

相关文章推荐:
Cookie/Session的机制与安全

相关文章

网友评论

      本文标题:Http cookies的用法

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