网站登录注册-Session 和token的总结

1、为什么要使用session

  因为http本身是无状态协议,无法确定你的本次请求和上次请求是不是你发送的。如果要进行类似论坛登陆相关的操作,就实现不了了。

2、Session 生成方式

  浏览器第一次访问服务器,服务器会创建一个session,然后同时为该session生成一个唯一的会话的key,也就是sessionid,然后,将sessionid及对应的session分别作为key和value保存到缓存中,也可以持久化到数据库中,然后服务器再把sessionid,以cookie的形式发送给客户端。这样浏览器下次再访问时,会直接带着cookie中的sessionid。然后服务器根据sessionid找到对应的session进行匹配;

 1、为什么要使用token

  token在服务器是可以不需要存储用户的信息的,而token的传递方式也不限于cookie传递,可以保存在响应报文或者请求报文的报文头部中

2、token的生成方式

  浏览器第一次访问服务器,根据传过来的唯一标识userId,服务端会通过一些算法,如常用的HMAC-SHA256算法,然后加一个密钥,生成一个token,然后通过BASE64编码一下之后将这个token发送给客户端;客户端将token保存起来,下次请求时,带着token,服务器收到请求后,然后会用相同的算法和密钥去验证token,如果通过,执行业务操作,不通过,返回不通过信息;

  区别

    Session 需要保存在服务器端,

    Token  不需要保存在服务器端

原文地址:https://www.cnblogs.com/houjl/p/10133822.html