Server ——Token、Session与Cookie的区别

版权声明:本文为博主原创文章,但部分内容来源网络,如有侵权,告知即删! https://blog.csdn.net/chenyuan_jhon/article/details/78895185

Session会话

  • 概述:
    当用户打开某个web应用的时候,便与web服务器产生一次session。使用session把用户信息保存在服务器上,
    用户离开网站后session被销毁。这种方式相对Cookie来说更安全。
    • 缺陷:
      一:当服务器做了负载均衡时,下一个操作请求到另一台服务器的时候,session会丢失。
      二:会不会需要多次登录?既每次离开后再来都需要登录???

Cookie

  • 概述:
    Cookie是保存在本地终端的数据。由服务器产生,发送给浏览器,浏览器以k-v的形式保存在某个目录下的文本文件内,
    下次请求时会把同一个Cookie发送给服务器。

Token

  • 概述:
    token的意思是令牌,是用户身份的验证方式。最简单的token由uid(用户唯一的身份标识)+time(当前时间的时间戳)
    +sign(签名:加盐以哈希算法压缩成一定长度的十六位进制字符串)
  • 超时与唯一设备登录:
    客户端:客户端在登录的时候获取设备的设备号/mac地址,并将其作为参数传递到服务端。
    服务端:服务端接收到该参数后,便用一个变量来接收同时将其作为Token保存在数据库,并将该Token设置到session中,
    客户端每次请求的时候都要统一拦截,并将客户端传递的token和服务器端session中的token进行对比,如果相同则放行,
    不同则拒绝。此刻客户端和服务器端就统一了一个唯一的标识Token,而且保证了每一个设备拥有了一个唯一的会话。
    该方法的缺点是客户端需要带设备号/mac地址作为参数传递,而且服务器端还需要保存;优点是客户端不需重新登录,
    只要登录一次以后一直可以使用,至于超时的问题是有服务器这边来处理,如何处理?若服务器的Token超时后,
    服务器只需将客户端传递的Token向数据库中查询,同时并赋值给变量Token,如此,Token的超时又重新计时。

参考:http://wyong.blog.51cto.com/1115465/1553352

猜你喜欢

转载自blog.csdn.net/chenyuan_jhon/article/details/78895185