Session 和 Cookie
1.Cookie
Cookie是服务器发送到用户浏览器并保存在本地的一小段数据
- 工作机制:当你第一次访问网站时2,服务器会在响应头通过
Set-Cookie命令,让浏览器保存一个信息(比如user_id=123) - 后续行为:以后你每次向同一个域名发请求,浏览器都会自动把这个Cookie放在HTTP请求头里带给服务器
- 特点:
- 存储在浏览器端(本地)
- 由于是存在本地,用户可以查看、修改、删除
- 大小有限制(通常不超过4KB)
2.Session
Session是在服务器端保存用户状态的一种机制
工作机制:
当用户登录,服务器创建一个Session对象,并生成一个唯一的标识符,叫Session ID
服务器把用户信息存在服务器的内存或数据库里
服务器通过Cookie把这个
Session ID发回浏览器浏览器以后请求时,只带
Session ID。服务器通过这个ID去查帐本,就知道你是谁了
特点:
- 存储在服务器端(安全)
- 用户无法直接修改服务器上的Session数据
- 适合存储敏感信息,但会占用服务器资源
3.Conclusion
| 特性 | Cookie | Session |
|---|---|---|
| 存储位置 | 客户端(浏览器) | 服务器端 |
| 安全性 | 较低(易被截获/伪造) | 较高(数据在服务器) |
| 容量限制 | 小(4KB 左右) | 理论上不受限制(取决于服务器内存) |
| 存储内容 | 字符串文本 | 可以是任意对象(如 User 对象) |
| 性能影响 | 增加请求带宽(每次都传) | 增加服务器内存压力 |
4.Relation
Cookie和Session通常是配合使用的
- Session本身依赖Cookie:为了让服务器识别你的Session,服务器必须通过Cookie将
Session ID存放在你的浏览器里。如果你禁用了Cookie,Session通常就失效了(除非使用URL重写技术)