关于cookie、session、token的理解

一、简述
1、在web刚兴起的时候,人们使用网络主要是用来浏览文章,服务器不需要记录某位用户看了哪篇文章。
2、随着网上购物的出现,服务器必须区分登陆的每一个用户,记住哪位用户购买了什么东西,向购物车添加了什么商品,为此,服务器为每一个用户生成一个唯一的识别码,如:session,使用户每次请求时都携带该码。
3、但是随着用户量的增多,管理session的成本及开销越来越大,一台机器A已经顶不住压力,所以我们做了横向扩展,再增加一台机器B,用这两个机器做一个集群,但是用户的请求不一定转发到哪一个机器上,这就导致了,当用户F在机器A上登陆后,再次请求服务器,请求到了机器B上,可是机器B上并没有F的认证信息,导致用户F得重新认证,所以我们想出了粘连session,这样访问机器A的用户就一直访问机器A,不会访问机器B。
4、可是当机器A挂掉之后,用户只能访问机器B,而机器B上还是没有用户F的认证信息,所以用户F又得重新认证,后来我们想出了各个机器间session同步的方法,当一个用户在任何一个机器上认证以后,该session信息将复制给该集群下的所有其他机器。
5、但是这样的话频分的复制session,又极大了增加了服务器的开销,在这时,memcache提出了将session存于一处的方法,所有机器要获取的数据都从存储session的地方读取。
6、这样虽然降低了服务器开销,但是又会出现单点崩溃的现象,如果memcache挂掉,那么所有的用户都得重新登陆。所有的session都在服务器端管理,那么交由浏览器端管理呢。用户认证成功后,服务器向浏览器返回用户唯一识别信息和一个用只有服务器端才知道的密钥加密用户信息后的结果,如:token,浏览器每次请求服务器都必须携带该token信息,服务器每次获取用户唯一信息,然后经过服务器的加密算法,得到的结果与token的结果相同,来标识是哪位用户。以延长计算时间来减少空间存储。
如今,token是多用户认证系统最受欢迎的方法,它无状态,跨平台。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值