Session和Cookie
1. Cookie
1.1 Cookie概念
- Cookie是浏览器保存在本地的文本内容
- Cookie常用于保存登陆状态,用户资料等小文本(真实开发中,用户量小众的时候更愿意保存SessionId,通过SessionId到Session服务器获取Session信息,因为每次客户端请求的时候都会携带Cookie信息,而这个信息最大可支持4k,影响性能)
- Cookie具有时效性,Cookie内容会伴随请求发送给服务器
1.2 Cookie常用方法
- Cookie(key, value):cookie的构造函数
- setMaxAge():设置cookie的最大存活时间
- getValue():获取对应cookie的cookie值
- setValue(newValue):设置对应cookie的cookie的新值
- Response.addCookie(cookie):向响应中添加对应key的cookie对象
2. Session
2.1 Session概念
- Session(用户会话)用于保存与浏览器窗口对应的数据
- Session的数据存储在Web服务器中,具有时效性
- Session通过浏览器Cookie的SessionId值获取
2.2 可以实现Session的方式
我现在开发中遇到的有以下几种方式,更多的希望大家帮我完善
- 服务器(缓存)Session
- 缓存服务器,登录访问缓存服务器,生成Session,访问业务服务器携带SessionId,去缓存服务器取Session,更新Session时效
- 数据库缓存,登录生成Session,存到数据库,访问携带SessionId,去缓存服务器读取Session更新Session时效
- redis服务器缓存Session,更新时效,类似数据库缓存