session,token

session

  什么是session?
  session是一个用户会话的配置属性信息,同时存储在用户和服务器里面。
  session的作用。
  用于解决http/https的无状态特性。用于区分确认用户。用户登录后,服务器发放一个sessionid给客户端,自身内存也保存一个一样的sessionid,等到下次用户在访问服务器时,http/https的head头将携带这个sessionId,服务器程序则会判断此id是否存在用于区分不同用户。
  session的缺点以及解决方案
  如果登录用户太多,一台服务器肯定不够,那么就会集群分部,就是用多台服务器来分流处理。前面的负载均衡器则来分发请求。为了避免sessionid在服务器的不同步问题,可以用session sticky来让用户连接到固定的服务器。也可以让服务器之间相互复制,也可以建立一个专门存放sessionid的服务器

token

  token则是与session与众不同。如果session占的是空间,那么token占的则是时间。现在服务器性能那么好,时间的消耗微乎其微。而且可以避免上述sessionid在不同服务器之间的问题。
  token是怎么处理的?
  用户登录系统后携带的用户id,服务器用专门的密钥对其这个用户id来加密,生成一个签名。然后把这个签名和数据一起作为token发给客户端,自身则是不保存,重要的事情说三遍,自身不保存。用户再来访问时则要携带这个token,服务器则是把这个token取出来,在对这个id来用相同方式加密,如果签名不一样则是,无法通过了。
  大致是这种原理,一般来说还会在token里面加个过期时间之类的。
  目前很多小网站没有都是获取到大公司的授权码来登录,用到的也是token
  用下面转载自码农翻身的一张图来解释下

aaa

  一目了然。

猜你喜欢

转载自www.cnblogs.com/donghang/p/9233786.html