session、cookie、token的区别

由于http协议是无状态的,为减轻客户端和服务器之间登录验证的麻烦,于是有了session和cookie这类玩意。

session和cookie

什么是session呢,客户端在第一次进行登录验证时,服务器会从数据库中查询对应的账号和密码,若匹配成功,则生成一个针对于此客户端的sessionID,(其本身应该是由过期时间的),将此SessionID发送给客户端。客户端可以存储到本地的cookie中,下一次就可以带着cookie信息直接访问,而不需要进行登录验证了。

Token

token又是什么呢?其实sessionID也是Token的一种实现方式,但是业界常用的还是比如像JWT这种的验证方式。
这里有关于JWT的详细介绍(https://www.cnblogs.com/yuanrw/p/10089796.html
),它的优点在于服务器不许要进行存储,只需要进行解密验证就行了,相当于是利用计算能力代替了存储空间。
token的组成为header+payload+signature。其中signature是对前两个字符串进行的签名。
优缺点:
JWT的优点:

  • 安全性高,防止token被伪造和篡改

  • 自包含,减少存储开销

  • 跨语言,支持多种语言的实现

  • 支持过期,发布者校验

JWT的注意事项:

  • 消息体可以被base64解密为明文

  • 不适合存放大量信息

你可能感兴趣的:(session、cookie、token的区别)