session、token、cookie

彻底理解cookie、session、tokencookie,session,token有啥区别?https://mp.weixin.qq.com/s?__biz=MzAxMTg2MjA2OA==&mid=2649844338&idx=1&sn=864a2368c134e3f70766dbd99e66700c&chksm=83bf6329b4c8ea3fad2b57093a7e606b8a0efb870ff076e6583b90fc6335ea4df9f9387266cc#rd

session和token 都是验证客户端的

 session:会话id ,服务端用来区分客户端的,服务端对客户端的一个身份证验证的东西,调用登录接口的时候服务端生成返回给客户端 ,服务端和客户端都要保存

下次请求时,客户端携带过来。服务端查找之前有没存储过。有的话就是合法用户。没有就不是合法用户,如果用户量很大了。服务端就存在保存压力。。而且服务端有多个的话。也就是负载均衡处理。可能另外的几个服务器也需要拷贝保存的数据,也就是session有一个缺陷:如果web服务器做了负载均衡,那么下一个操作请求到了另一台服务器的时候session会丢失。

有很多的限制性,扩展性不好

根据登录的账号密码

服务端返回session给客户端 自己也会保存一份

session 客户端自己保存 ,每次请求带上

每次请求查下是不是一样就验证了

但是如果服务端用户量很大。。做了负载均衡。。A和B服务器可能只有A有

就存在问题了。。B需要复制

Token:令牌,服务端对客户端的一个身份证验证的东西,调用登录接口的时候服务端生成返回给客户端保存。。服务端不用保存。。每次请求的时候携带。服务端用秘钥验证就可以了

登录的时候根据用户名和密码    然后用HMAC-SHA256 算法和密钥对身份数据签名返回token

客户端每次请求携带token

这个tokenf 服务器不保存, 当小F把这个token 给我发过来的时候,我再用同样的HMAC-SHA256 算法和同样的密钥,对数据再计算一次签名, 和token 中的签名做个比较, 如果相同, 我就知道小F已经登录过了,并且可以直接取到小F的user id , 如果不相同, 数据部分肯定被人篡改过, 我就告诉发送者:对不起,没有认证。

其实就是服务端有别人不知道的秘钥 。。每次用秘钥来验证。服务端不需要保存。这就解决了服务端跨端 和保存的问题

cookie:

cookie 是一个非常具体的东西,指的就是浏览器里面能永久存储的一种数据,仅仅是浏览器实现的一种数据存储功能。

cookie由服务器生成,发送给浏览器,浏览器把cookie以kv形式保存到某个目录下的文本文件内,下一次请求同一网站时会把该cookie发送给服务器。由于cookie是存在客户端上的,所以浏览器加入了一些限制确保cookie不会被恶意使用,同时不会占据太多磁盘空间,所以每个域的cookie数量是有限的。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值