cookie(学习笔记)

之前对于保持登录态这个问题,一直比较疑惑,自己也没有实现过,看了这篇文章之后好像明白了什么,聊一聊cookie
所以看完以后自己为了熟记,有了这篇学习笔记。

cookie的工作过程

cookie是浏览器提供的功能,可以存储字符串,cookie以域名的方式区分的,每一个域名下最多可以有20个(实际不止),每个cookie大小有限。每次发送http请求时,浏览器会查看是否有相应的cookie,有的话就自动添加到request header中,如果是用户名的话,就能告诉服务器是哪个用户在发送请求,就可以返回对应用户的数据,就实现了保持登录态(个人没实践过,但是觉得逻辑上说得通)。

cookie的选项

属性间由分号和空格隔开

  • expires
    这个选项可以设置cookie的失效时间,expires必须是 GMT 格式的时间(可以通过 new Date().toGMTString()或者 new Date().toUTCString() 来获得)。默认的有效期是session,就是在浏览器关闭后就会消失;该值设为0可以删除cookie。
  • domain和path
    domain是域名,和path一起构成url,该url可以限制cookie可以被哪些url访问,就是在给哪些url发请求的时候该cookie会被添加到request header中。在该路径或者该路径的子路径下时,会被添加。若没设置,使用默认值。domain的默认值为设置该cookie的网页所在的域名,path默认值为设置该cookie的网页所在的目录。
    以下说明引用原文:

特别说明1:
发生跨域xhr请求时,即使请求URL的域名和路径都满足 cookie 的 domain 和 path,默认情况下cookie也不会自动被添加到请求头部中。
特别说明2:
domain是可以设置为页面本身的域名(本域),或页面本身域名的父域,但不能是公共后缀 public suffix。举例说明下:如果页面域名为 www.baidu.com, domain可以设置为“www.baidu.com”,也可以设置为“baidu.com”,但不能设置为“.com”或“com”。

  • secure
    secure用来设置在安全情况下发送cookie到服务器,默认值为空,也就是不管在http还是https下都能发送成功。即便设置了该选项在客户端还是能够看到cookie,网页在https协议下才能设置该属性。
  • HttpOnly
    HttpOnly用来设置js是否可以访问cookie,默认是可以访问的(修改,插入,删除),在服务器端可以设置该类型的cookie。

cookie的设置和修改、插入、删除

document.cookie可以获取到没有设置HttpOnly选项的cookie。
修改的话,要保证url相同的情况下,直接覆盖修改就可了。
插入的话 document.cookie = "key=value; "。
删除,在保证url相同的情况下,修改失效时间。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值