1. 存储位置不同
- Session 存储在服务器。
- Cookie存储在客户端(本地)。
2. 服务器压力不同
- Session保存在服务端缓存区,每个用户都会生成Session。当并发十分大,则会耗费大量内存,甚至内存泄露。
- Cookie保存本地,并发十分大,加密Cookie(服务器解密)是很好的选择。如google/baidu等。
3. 保存机制
- Cookie文本信息(解决分发、内容和使用)。
- Session使用类似散列表结构保存信息。
4. 大小限制
- Cookie保存数据限制4K内。较多浏览器一个站点限制20个Cookie。
- Session保存在服务端,无限制。
5. 跨域
- Cookie支持跨域访问。
- Session不支持跨域使用,仅在所在域名有效。
- Cookie和Session搭配使用,达到更换效果。
思考
- 用户禁用Cookie的验证
- URL重写,sessionId附加在URL路径后。
- 表单隐藏字段验证。
- 应用场景
- Cookie: 登录信息。
- Session: 用户身份信息等。