0%

Cookie、session and token

目的

由于HTTP请求无状态,需要借助额外的手段来验证用户身份

session id

方法

  • 分配给用户session id作为标识

缺陷

  • 服务器要存所有的session id
  • 不适合分布式环境或负载均衡

token

组成

  • 明文数据

  • 签名

    • 数据+加密算法+秘钥=签名

校验方式

  • 服务端收到token后用秘钥+加密算法计算签名是否一致
  • 利用计算时间换取存储空间

优势

  • 跨程序调用

    因为 用户的身份正确与否 是通过计算得出来的(无状态),不存在session id那样的分布式问题,所以扩展性(随意增加服务器)很好

  • 无状态,可扩展

    因为无状态,所以扩展性好

概念

  • 浏览器提供的数据存储功能
  • 由服务器生成,存储在客户端
  • 每个域的cookie数量有限

PS:session,token都可以放在cookie中