Cookie和Session都是用来跟踪浏览器用户身份的会话方式
区别
Cookie
- 存放在客户端
- 一般保存用户信息
Session
- Session存放在服务端
- 安全性更高
使用Session-Cookie方案进行身份验证
- 用户发送登录信息
- 服务器验证通过,为用户创建一个
Session,将Session存储 - 服务器向用户返回
SessionID,写入用户的Cookie - 用户保持登录状态时,
Cookie将与每个后续请求一起发送 - 服务器将存储在
Cookie上的SessionID与内存中或数据库中的Session比对,验证身份
注意
- 一定要确保客户端开启了
Cookie - 注意
Session的过期时间
多服务器节点下Session-Cookie
可能会有用户两次访问导向到不同服务器,以至于Session失效
常见解决方案
- 通过哈希策略分配
- 服务器间的Session互相同步(节点越多成本越高)
- 使用一个所有服务器都能访问到的数据节点(缓存)存放Session
- Spring Session