罗剑锋透视HTTP协议学习笔记---19 | 让我知道你是谁:HTTP的Cookie机制

44 篇文章 6 订阅

19 | 让我知道你是谁:HTTP的Cookie机制

HTTP协议是无状态的,即上一次请求和本次请求没有任何关系,对于某些事务性需求,如购物,需要记录访问者身份,如果不能记录用户身份信息,每次请求需要验证身份,显然十分不便。
因此,引入了cookie,由服务端对用户信息做标记,客户端后继请求带上该信息,即解决了身份识别的问题。
cookie【RFC6265】是服务器委托浏览器存储在浏览器本地的kv对形式的用户身份标识信息。

工作流程:

  • 客户端访问页面,执行登录动作
  • 服务端识别用户身份,并在响应报文中用Set-Cookie: key=value + 若干参数设置cookie标识用户身份
  • 客户端后继请求消息中带上相关cookie,标识客户端
  • 服务端通过cookie识别用户身份,并进行后继动作。
    注: cookie不是HTTP标准,它使用的参数之间的分隔符是";“而不是”,"

典型应用:

  • 身份识别
  • 广告追踪

常用字段:
响应字段,每个Set-cookie带一个键值对,Set-cookie可以用多次

  • Set-cookie: x=y
  • Set-cookie: a=b

请求字段,一个Cookie带多个键值对

  • Cookie:x=y;a=b

Cookie的属性用来控制cookie的生存期和访问控制
生存期包括Max-age,Expires,优先使用Max-age:

  • Max-age=10 #注浏览器用收到报文时间+max-age作为cookie的生存期
  • Expires= xxx

控制Cookie的可见URI,包括Domain和path2部分,即仅把cookie发给匹配的URI

  • Domain= URI
  • Path=/

安全性

  • HttpOnly 限制cookie只能通过HTTP协议访问,而不能通过JS访问
  • SameSite= Strict 禁止跨站访问、 Lax 仅安全方式可以跨站访问
  • Secure 仅能用HTTPS传输

课后作业

如果 Cookie 的 Max-Age 属性设置为 0,会有什么效果呢?

  • cookie立即失效。

Cookie 的好处已经很清楚了,你觉得它有什么缺点呢?

  • 如果没有合理设置有效期,有效范围,安全性,如HttpOnly, SameSite等,则有潜在安全风险。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值