Cookie、Session和Token

cookie

存储在客户端
第一次登陆后,服务器给浏览器一些数据作为用户凭证,作为再次请求数据的同行凭证。

分类

1、会话cookie:
生命周期和浏览器一致。
2、持久cookie:
存放在客户端硬盘上。

session

存储在服务器

session和cookie的结合

1、服务端存储session,浏览器存储session_id,交互中通过id在服务端查找session的相关信息。
该模式:server side session
2、将session加密存储到cookie中
该模式:client side session

token

由uid+time+sign[+固定参数]
Token认证方式类似临时证书,是一种服务端无状态的认证方式(服务端不会保存身份认证的相关数据)

token特点:

可以抵抗CSRF攻击

原因:

浏览器不会自动在headers中添加用户的token信息,攻击者也无法访问用户的token,提交的表单无法通过服务器过滤。
token类似令牌,无状态,用户信息被加密到token中,服务器可以收到token后解密认证

补充:关于浏览器缓存的分类:

1、强缓存:

直接在本地缓存中取资源,不会和服务器通信,http返回状态码200。
由headers中的Expires和cache-control(优先级较高)决定的

2、协商缓存:

由服务器决定是否在本地缓存
由两组headers值:
i. Last-Modified / If – Modified – Since
ii. Etag / If – None – Match(优先级较高)


   转载规则


《Cookie、Session和Token》 Evolyutsiya 采用 知识共享署名 4.0 国际许可协议 进行许可。
  目录