session与token的区别

8/11/2021 http

# session 与 token 的区别

# session 与 token 的实现原理

  1. session 的实现原理:在用户登录后,将用户信息存在服务端,并将对应的 sessionId 设置在 cookie 上,传递给客户端,客户端请求时就会在 cookie 上携带这个 sessionId,服务端再去校验 sessionId。http 本身是无状态的,通过 sessionId,整个请求过程就有了状态

  2. token 的实现原理:在用户登录后,根据用户信息生成 token 并将 token 返回客户端。客户端将 token 保存下来,每次请求都会携带 token,服务端再去解析 token,获取用户信息和过期时间。

# session 与 token 的相同点

  1. 两者都用于验证用户登录状态

# session 与 token 的不同点

  1. session 保存在服务端,token 保存在客户端

  2. session 保存在 cookie 中,在客户端和服务端之间传递,容易被伪造。token 一般保存在 localStorage,且是加密的,安全性更高

  3. session 保存在服务端,如果有多个服务器,就需要在多个服务器间同时保存和更新 session 状态,业务复杂,性能压力大