session和Token的区别

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,浏览器会进行存储,并与下一个请求一起发送到服务器。
通常,它用于判断两个请求是否来自于同一个浏览器,例如用户保持登录状态。

你可能感兴趣的:(java)