Cookie、Session、Token、JWT都是啥

Cookie、Session、Token、JWT都是啥

参考B站视频链接
用户在浏览器进行登录时,浏览器会将用户名和密码发送给服务器,服务器查询后确定是哪个用户发送的登录请求。但用户登录之后还会有其它的请求,如果每次请求都带上账号密码,容易导致密码泄露。

所以服务器会返回一些标记信息,浏览器收到这些标记信息之后,会保存在Cookie中,每次发送请求就带上,这样就能区分用户,实现了记住登录状态。Cookie的保存和发送是由浏览器自动实现的。

虽然cookie信息中并没有密码,但是这些标记信息如果被恶意的人拿到就也会得相同的用户权限,所以可以使用数据签名的方式来作为cookie(会拼接上服务器的密令),后面进行请求时,服务器就可以通过验证签名来判断数据是否合法。

Cookie是保存在浏览器上的,如果我们不想在浏览器中保存太多的数据,可以把数据保存在服务器中,然后生成一个足够长的key与数据关联,key返回到浏览器写入Cookie中。这个过程是Session,key是SessionID,Session本质上还是Cookie。

而APP、小程序这些客户端的网络请求接口默认没有Cookie机制。所以返回的是Token,类似于SessionID,但是没有浏览器的cookie机制。使用Authorization字段。

Session和Cookie的数据都是存储在服务器当中,如果是分布式服务器就会出现某些服务器没有会话数据导致鉴权失败的情况,解决问题可以在服务器中假设一个中心化的存储服务,例如redis来专门存储会话数据(但是如果中心化服务器发生故障就会导致所有服务器连带故障)
所以如果还是由客户端来保管会话数据,所以采用JWT来统一标准生成Token.
JWT分为三部分:
Header(头部):Hash算法和Token类型
Payload(载体):需要携带的会话数据
Verify signature(签名):与Cookie签名类似

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值