Cookie 与 Session 学习笔记

Cookie和Session都是用来跟踪浏览器用户身份的会话方式

区别

  • 存放在客户端
  • 一般保存用户信息

Session

  • Session存放在服务端
  • 安全性更高

使用Session-Cookie方案进行身份验证

  • 用户发送登录信息
  • 服务器验证通过,为用户创建一个 Session ,将 Session 存储
  • 服务器向用户返回 SessionID ,写入用户的 Cookie
  • 用户保持登录状态时, Cookie 将与每个后续请求一起发送
  • 服务器将存储在 Cookie 上的 SessionID 与内存中或数据库中的 Session 比对,验证身份

注意

  • 一定要确保客户端开启了 Cookie
  • 注意 Session 的过期时间

可能会有用户两次访问导向到不同服务器,以至于Session失效

常见解决方案

  • 通过哈希策略分配
  • 服务器间的Session互相同步(节点越多成本越高)
  • 使用一个所有服务器都能访问到的数据节点(缓存)存放Session
  • Spring Session
img_show