Bootstrap

黑马点评学习过程汇总——Cookie \ Session \ Token的区别

1. Cookie \ Session \ Token的区别

10分钟助你弄懂cookie、session、token 区别、用途!!!_哔哩哔哩_bilibili

(1)为什么要使用Cookie

        在客户端和服务端之间维持用户登录状态

(2)为什么不能只使用Cookie

  • Cookie保存在客户端,可以被客户端篡改,存在安全风险
  • Cookie容量有限,只有4kb
  • 用户可以从服务端禁用Cookie

(3) Session辅助Cookie存储用户信息

我们往session中存储用户信息,服务器端保存session并通过响应头中的set-cookie命令携带session信息,自动存储session信息到cookie中。浏览器的下一次请求会把cookie传送到服务端。

(4)Session的弊端

  • 保存在服务端,占用服务器资源
  • session信息在服务器集群中不可共享
  • 跨域Cookie的传递很麻烦

(5)Token的改造

前端发起登录请求到后端,后端对前端携带来的信息进行认证,认证成功后会生成jwt字符串(包含:Header头部,Payload负载,Signature签名 )并以“token:jwt”的形式返回到前端。前端通过base64方式对token的payload段进行解码获取信息。 在后续的请求中,前端发往后端的请求中都携带token,后端拿到token后进行jwt的解密并验证signature,如果检验成功信息没有被篡改,就会放行。

Token不依赖于session和cookie,对集群和前后端分离架构友好

;