1.session工作原理

 

客户端通过用户名和密码请求服务端,服务端就会生成身份认证相关的session数据,比如用户、用户名等信息来生成一份session数据,会保存在内存里或内存数据库里,并将sessionId通过Set-cookie响应头返回给客户端, 客户端则会把sessionId存在cookie中。此后,客户端发起的所有请求都会带上该sessionId,服务单会通过该sessionId寻找session数据并解析,由此得知当前登录状态有没有登陆,以及有什么权限。

前端想重新验证退出登陆就可以,后端想重新验证修改下session就行。

 

2.session优势

  • 相比JWT,最大优势是可以主动清除session。
  • session保存在服务器端相对安全。
  • 结合cookie使用,较为灵活,兼容性好

3.session劣势

  • cookie+session在跨域场景很麻烦
  • 如果是分布式部署,需要做多机共享session机制
  • 基于cookie的机制容易被CSRF
  • 查询session信息可能会有数据库查询操作,带来性能问题

4.session相关概念

(1)sessionStorage:客户端用于存储变量的,仅在当前会话下有效,关闭页面或浏览器后被清楚

(2)localStorage:除非被清除,否则永久保存

版权声明:本文为kaiqinzhang原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/kaiqinzhang/p/12131927.html