Session和Token区别

在面试中被问到。为什么要token验证,而不是使用session?除了session存储在cookies中,非浏览器环境做验证比较困难,别的没有想到,此处查找资料后记下来。

Http是一个无状态协议,如果客户端需要继续操作每次都需要重新传递信息。所以需要客户端登录后由服务端授予一个标识,下次客户端如果带上这个标识则服务端会识别出这个用户。

这个标识一般使用Session或Token。

Token与Session

Session是存储在服务端的会话,登录成功后,客户端在cookies拥有一个sessionId。当访问的时候cookies将id带过去,服务端通过id,找到会话信息。

Token是无状态的一串令牌,当用户登录后返回的token字符串,字符串包含一定的用户信息。当token字符串未失效时,使用token获取用户登录信息。

区别

token更多是对用户进行认证,然后对某一个应用进行授权。让某个应用拥有用户的部分信息。这个token仅供此应用使用。

session像是这个用户登录了应用,用户把全部信息存放在此应用,应用拥有完整的用户信息。

Token的优点

无状态

服务端不存储状态,多服务器session需要同步信息。

存储简单

可以使用浏览器的localStorge等,APP也可以使用自带数据库存储字符串。且不会出现cookies出现跨域问题。

携带信息

token可以用JWT来携带部分不太敏感的信息比如用户ID等,服务器只要解密token即可使用部分信息。

JWT http://blog.leapoahead.com/2015/09/06/understanding-jwt/

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容