Session+cookie和使用token有什么区别
1. 基本概念对比
1.1 存储位置
机制 | 存储位置 | 安全性 | 性能影响 |
---|---|---|---|
Cookie | 客户端浏览器 | 低 | 低 |
Session | 服务器 | 高 | 高 |
Token | 客户端 | 高 | 低 |
1.2 工作原理
# Cookie工作流程
1. 服务器发送Cookie
Set-Cookie: user=john; expires=Sat, 31 Dec 2023 23:59:59 GMT
2. 浏览器存储Cookie
3. 后续请求自动携带Cookie
Cookie: user=john
# Session工作流程
1. 用户登录
2. 服务器创建Session并生成SessionID
3. 将SessionID通过Cookie发送给客户端
4. 客户端请求时携带SessionID
5. 服务器验证SessionID并返回数据
# Token工作流程
1. 用户登录后服务器生成Token
2. 客户端存储Token
3. 请求时在Header中携带Token
Authorization: Bearer <token>
2. 特点比较
2.1 Cookie
-
优点:
- 减轻服务器负担
- 实现简单
- 支持浏览器原生
-
缺点:
Read more...