session的产生
由于Http是无状态协议,每次用户请求,服务器无法感知是不是同一个用户的请求于是有了session机制
session机制
session是存储在服务器端的,当浏览器第一次请求Web服务器,服务求就会产生一个Session存放在服务器里
然后通过相应头的方式将sessionid返回给浏览器写入到Cookie中,浏览器下次请求将Sessionid以Cookie形
式传递给服务器端,服务器端获取SesssionId后再去寻找对应的Session。
为什么session不适合分布式部署
服务器做了负载均衡,用户的下一次请求就可能被定向到别的服务器节点上,若该节点没有Session信息,就会
导致会话验证失败。
什么是负载均衡:
前因:意识其实就是如果一个服务器突然宕机了,这个时候整个软件都将无法使用,或者超多用户同时访问,超过了web
服务器的最大处理极限,这个时候服务器就会加载缓慢或者无法加载。
后果:解决的方法就是一个不行来俩服务器或者后端引入一个负载均衡器。
Token的产生就是为了解决Session的弊端
首先 token 一般通过一些加密算法如:MD5,SHA算法将其加密字符串
浏览器访问Web服务器去认证成功后生成Token并返回给客户端,客户端后续的请求会把Token和服务器端去验证
来判断是否为同一个。
验证顺序:客户端 --> 加密--->密文 web服务器 -->相同加密--->密文
密文比对 相同true否则false。
Session与Token的区别
1.session是存放在服务器端的,可以保存在:内存,数据库 。它采用的是以空间换时间的策略来进行身份识别
2.Token是存放在客户端存储的,采用时间换空间的策略,它也是无状态的,所以分布式环境中应用广泛。
通常如购物车可以采用Session验证,接口校验一般采用Token验证。
Cookie是什么
HTTP 协议中的 Cookie 包括 Web Cookie 和浏览器 Cookie,它是服务器发送到 Web 浏览器的一小块数据。
服务器发送到浏览器的 Cookie,浏览器会进行存储,并与下一个请求一起发送到服务器。
通常,它用于判断两个请求是否来自于同一个浏览器,例如用户保持登录状态。
本文介绍了HTTP会话管理中的Session和Token机制。Session存储在服务器端,适合存储少量、敏感信息,但不适合分布式环境。而Token存储在客户端,无状态,适合分布式部署。负载均衡用于解决单服务器压力问题,但会导致Session在分布式环境中的问题。Token通过加密算法确保安全性,成为Session的替代方案。Cookie作为服务器与浏览器交互的工具,用于维持会话。总结来说,Session与Token各有优劣,适用于不同的应用场景。
1171

被折叠的 条评论
为什么被折叠?



