Token、Session、Cookie、LocalStorage 区别以及联系

一、区别和联系

对于他们之间的区别以及联系,本篇博文仅做一下总结,具体可以看看这篇博客:彻底理解 Cookie、Session、Token

Token 与 Session 都是用来标识客户端的一种方式,他们都可以保存用户信息,都可以用来识别用户。

但是他们的主要区别是:前者是客户端保存用户信息,后者是服务端保存用户信息。

使用 Token 时,当用户登录成功后,服务端返回一条带有用户信息的加密字符串(Base64)给客户端保存。

使用 Session时,当用户登录成功后,服务端保存用户信息,并返回一条唯一标识该用户信息的字符串。

他们以后访问服务器时,就将请求加上 token 或者 sessionId 发送给服务器,服务器用此来区分客户端。

正如上面所述,但用户非常多时,使用 Session 的话服务器将会消耗大量内存,增加服务器负荷。

Cookie 和 LocalStorage 都是浏览器用来存储数据的,比如上面的 token 或者 sessionId,不过 LocalStorage 存储空间更大。

他们之间的区别可以看看这篇博文:浅谈浏览器存储(Cookie、LocalStorage)

最后说一下关于Session和Token的使用:

二、Token的使用

Java 有许多JWT库的实现,它们之间各有优缺点,可以看看这篇:各JWT库的对比

如果使用其中一种集成到SpringSecurity中,可以看看这篇:JWT和SpringSecurity集成

posted @ 2021-01-11 12:03  M-Anonymous  阅读(610)  评论(0编辑  收藏  举报