session、cookie、token的区别

转载:面试必问:session,cookie和token的区别

详情自行看转载的链接,以下是自己的笔记总结

  • http是无状态协议,若想实现客户端与服务器的交互,需要使用cookie+session技术或者token技术

cookie+session的实现流程

  1. 客户端发送请求到服务器
  2. 服务器收到请求后,在本地创建一个session,并传一个cookie回给客户端(cookie包含在响应头中)
  3. 客户端在后续所发出请求中,会包含cookie
  4. 服务器根据收到的cookie找对应的session,从而确定发送者的身份,完成后续的数据交互

token的实现流程

  1. 客户端提交账号和密码到服务端(登录操作)
  2. 通过登录验证后,服务端响应由 JWT(算法) 生成的 Token 令牌。
  3. 后续客户端若要访问服务器中其他资源,会在请求中带着 Token 到服务端。
  4. 服务端接收到请求之后,从 Token 中拿出 header 和 payload(图中Claims) ,然后通过HS256算法将 header 和 payload 和 “盐” 值 进行计算得出内容,让计算出的内容与Token中的第三部分,也就是Signature去比较,如果一致则验证通过,反之则失败。
    注:token结构
    image
原文地址:https://www.cnblogs.com/whyblogs/p/15074796.html