Session、Cookie和Token的主要区别【重点】【表格对比版】【简洁清晰】【面试】

Cookie

Session

Token

存储位置

客户端

服务器

客户端(但产生在服务端)

安全性

较差

相对更高

比session更高

占用服务器资源

占用服务器资源消耗少

当访问多时,消耗服务器的资源

作用

  • 记录用户状态,以此辨认身份;
    • 会话管理();
    • 个性化(用户偏好等);
    • 追踪;

同Cookie

  • 减轻服务端查询数据库的用户名和密码的压力;
  • 提供授权和认证功能;

优点

  • 无状态,可扩展和解耦;
  • 跨域并更好的CORS(跨域资源共享);
  • 在JWT中存储;

缺点

安全性差

session机制存在服务器压力增大,CSRF跨站伪造请求攻击,扩展性不强等问题;

分布式、跨系统实现困难;

  • 最小的Token也比Cookie要大;占带宽;
  • 性能问题;(JWT存储到Cookie中需要验证两次,所以会有两倍的签名验证开销)
  • 无法在服务端注销,很难解决劫持问题;

适用范围

Session更适用于客户端代码和服务端代码运行在同一台服务器上;

Token更适用于项目级的前后端分离(前后端代码运行在不同的服务器下);

参考:Token认证的好处和坏处是什么?_ MIss.Fan的博客-CSDN博客_token好处

猜你喜欢

转载自blog.csdn.net/jiayoudangdang/article/details/123923881