针对http无状态 的缺点
Cookie (客户端)
- Cookie实际上是一小段文本信息. 客户端请求服务端, 如果服务端需要记录用户状态, 就先客户端发送一个Cookie
-
客户端会把Cookie保存起来, 当浏览器再请求该网站时, 浏览器会把该Cookie一同提交给服务器, 服务器会检查该Cookie, 以此来认证用户
-
工作原理
- 有效期
Session (服务端)
- Session是保存在服务器上的, 客户端访问服务端时, 服务端把客户端信息以某种形式记录在服务器上
-
客户端再次访问时只需要从该Session 中查找该客户的状态就行了
- 保存Session ID的方式
Cookie
-
URL重写
隐藏表单
- 有效期
- Session超时失效
- 调用HttpSession.invalidate()
- 服务器进程被停止
比较
- 存放位置不同
- 安全性(隐私策略)不同
- Cookie在浏览器中, 对客户端是可见的, 客户端的其他程序会窥探它, 复制甚至修改它
- 可以加密Cookie
- 有效期不同
- Cookie 可以设置一个很长很长的保存时间
- Session不行, 服务端会定时清理, 因为它占用服务端资源
- 对服务器压力不同