一篇文章搞懂Session, Cookie and JWT

一篇文章搞懂Session, Cookie and JWT

为什么需要Session和Cookie

HTTP协议是无状态的,服务器没法单单通过每次request知道访问者的身份,需要一种机制来解决这个问题。

session和cookie的工作机制

  1. 浏览器第一次登录一个网站会在服务器创建一个session对象,对象保存了一个唯一的sessionID,Session的结束时间(Max-age)等属性;
  2. 服务器通过response向浏览器设置sessionID和Max-age(Set-Cookie)等;
  3. 浏览器取得Cookie后进行保存;
  4. 之后每次浏览器向服务器发送request都会附带上这个Cookie,其中就保存了sessionID;
  5. 服务器通过sessionID进行校验从而识别访问者的身份;
  6. Session和Cookie过期后需要重新认证。

Cookie

保存在浏览器的一小段文本信息,大小一般为4kb。

Session

保存在服务器端的一种对象,具有sessionID等属性。

为什么需要JWT

相比Session-Cookie机制节省服务器资源,更加适合分布式等。

JWT的工作机制

  1. 浏览器第一次登录一个网站后服务器会生成一个JWT, 并保存JWT的签名密文
  2. 服务器将JWT发送给浏览器
  3. 浏览器收到JWT后可以保存到Cookie或者Storage中
  4. 下次进行访问时会携带服务器签发的JWT
  5. 服务器进行校验

Json Web Token

JWT由三部分组成

header.payload.signature
  • header:声明生成签名的算法

  • payload:保存特定数据,如:有效期

  • signature:由header和payload通过Base64编码后结合服务器保存的密文进行计算后得到

需要注意的是JWT保存在客户端

参考列表:
BV1ob4y1Y7Ep

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值