对cookie、session、token的简单理解

本文探讨了无状态协议的概念,以及如何通过cookie、session和token提升交互场景的记忆能力。重点讲解了cookie的历史作用,session的简化存储方式,以及token的出现以减少服务器压力。同时概述了token的构成及其在安全性上的优势。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.无状态协议

是指协议对于交互的场景,没有记忆能力

2.引入cookie、session、token的目的

使得交互场景中,协议具有记忆能力。

3.cookie

1.cookie是早期的用户状态机制
2.交互流程:
cookie
如上图,每次请求的时候都需要带上一定数量的id,根据物品的id,在数据库中进行相应的查找,才能显示出用户选择的商品。从而达到记忆的功能。

4.session

1.基于cookie,我们发现服务端本来就存放着用户的数据,那么,我们不需要每次都把用户选择物品的id都存储到cookie中,而是加上一个标识用户身份的id,根据用户的id,去服务端查询出用户相对应的数据。这个id就是sessionID

2.交互流程
在这里插入图片描述
可以看到,cookie中不再存储大量的数据,只存储相应的sessionID即可。

5.token

token即no session。

session机制中大量的数据存在服务器中,导致服务器压力增加,且在多服务器的情况下,只有接收的服务器才具有当前用户的sessionID,而其他服务器
是没有的,会带来很大的问题。

token签名验证的方式来识别用户的身份,不会将大量的数据存储在服务端。减轻了服务器的压力。

交互流程:
token

token的组成:
1.头部
一般用于描述基信息:

1.令牌类型
2.签名算法 [HMAC SHA256等]

2.载荷
存放有效信息的部分,尽量不要存放敏感数据。因为这部分数据通过解码后可以查看的到。

3.签名

其实token就是一个串,先将头部和载荷进行编码,然后拼接,使用密钥进行签名。

本篇文章对于token的理解不是特别的透彻,有机会回来更新和修正。大家参考就行,如果错误,请指出。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值