cookie、session与token

cookie、session与token

cookie产生的原因:

-HTTP是无状态协议,每个请求都是安全独立的,服务器是无法确认当前访问者的身份,服务器和浏览器为了进行会话的跟踪,必须主动去维护一个状态(告诉服务器前后两个请求是否来自同一个服务器),这个状态需要通过cookie或者session来实现。

什么是cookie?

  • cookie是服务器发送到用户浏览器,并进行保存到本地的数据,它会在下一次请求的时候再一次携带并发送到浏览器上。

session

  • session是区别cookie的另一种记录服务器和客户端会话状态的机制,session是基于cookie实现的,并存储在服务端,session-id会被存储到客户端的cookie中。
  • session的认证流程:
    cookie、session与token

token(令牌):是访问接口时所需要的资源凭证

  • 常见的token是由三部分组成:UID、time(时间戳)、sign(签名、加密数据(HMACSHA256))
  • token的身份校验流程:
    cookie、session与token
    cookie、session与token

cookie和session的区别

  • 存储位置不同:cookie是存储在本地的浏览器,session是存储在服务器上。
  • 存储容量不同:每一个cookie保存的数据不超过4kb,每个站点不超过20个cookie;session没有容量上限,但是session存在服务器上,如果存太多的session,服务器压力会过大。
  • 安全性不同:cookie没有session安全。
  • 服务器压力不同。