在当今的学习中发现许多都是使用jwt的方式进行验证,那么session还会作为验证的手段吗?或者说,在实际开发中是如何抉择的。在分布式中使用的是什么?
在实际开发中,抉择验证的方法大多都是取决于需求。Session和JWT都可以用来作为验证的手段,不同的是,Session一般会使用在单体应用时,而JWT则是常用于分布式应用的情况。JWT可以更好的支持分布式应用,因为JWT是一个独立的、保存在客户端的token,这意味着在分布式系统中,只要服务器上的token有效,请求就可以被允许执行。而Session则需要在多个服务器之间共享数据,这会显著降低性能,因此,分布式应用通常使用JWT来完成验证而不是Session。
session 工作机制
1.用户向服务器提交认证信息
2.服务器认证通过后,在当前对话(session)里面保存相关数据,sessionid,session;
3.服务器向用户返回一个sessionid, 写入用户的cookie,set-cookie
4.用户后续的每一次请求, 都会通过cookie,将sessionid传回服务器
5.服务器端收到sessionid, 找到前期保存的数据,验证用户的身份
前后端分离,不用session
分布式系统,不用session
还没用过session