核心区别对比
1. 存储位置与状态管理
-
Session
-
服务器端存储:Session数据存储在服务器内存或数据库中(如Redis)。
-
客户端标识:通过Cookie传递Session ID(如
JSESSIONID
),服务器根据ID查询用户状态。 -
有状态:服务器需要维护Session生命周期(创建、销毁、超时)。
-
-
Token
-
客户端存储:Token(如JWT)由客户端保存(LocalStorage、Cookie等)。
-
自包含性:Token本身携带用户信息(如Payload)和签名,服务器无需存储。
-
无状态:服务器仅验证Token合法性,不存储会话状态。
-
2. 安全性对比
-
Session 风险
-
CSRF攻击:攻击者诱导用户携带合法Session ID发起恶意请求。
-
Session劫持&
-