Session机制
Session是存储在服务端的,每次请求客户端Cookie中携带sessionId,服务器进行验证,sessio是有状态的。
缺点:如果服务器做了负载均衡有多个,用户的请求到达某个服务器时,这个服务器没有用户的session信息,就会会话失败。所以Session默认机制下是不适合分布式部署的。
Token
Token我们一般称为令牌,一般通过MD5、SHA算法将密钥、公钥、时间戳等元素加密产生的加密字符串。
浏览器访问服务器后认证成功会返回token给客户端,客户端后续请求会携带这个token给服务器进行验证。
Session与Token的异同
Session和Token机制原理上差不多,都是用户身份验证的一种识别手段,它们都有过期时间的限制,但两者又有一些不同的地方。
1、Session是存放在服务器端的,可以保存在:内存、数据库、NoSQL中。它采用空间换时间的策略来进行身份识别,若Session没有持久化落地存储,一旦服务器重启,Session数据会丢失。
2、Token是放在客户端存储的,采用了时间换空间策略,它也是无状态的,所以在分布式环境中应用广泛。
本文对比了Session和Token两种用户身份验证机制。Session存储于服务器端,适用于单一服务器环境;Token存储于客户端,支持分布式环境,常见于现代Web应用。
1289

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



