这是我参与「第三届青训营-后端场」笔记创作活动的第3篇笔记 在这次青训营之中,我们小组是选择的抖音项目。在像抖音这种的APP中,会话管理是不可缺少的。这回所用的会话管理机制是Token。这里我想对比一下Token进制和Session进制(Cookie)。
Cookie(Session)的验证机制
cookie 是 Web 服务器保存在客户端上的一个非常小的文件。当客户端第一次连接到 Web 服务器(登录)时,Web 服务器会向客户端发出一个 cookie 文件(SessionID),并使用 HTTP 响应头发送。当时发布的会话信息(SessionID)包括登录信息。从下一次开始,当客户端访问Web服务器时,服务器会引用请求头中包含的cookie(SessionId),当匹配到服务器实际存储的Session信息时,就认为被认证过的。
Token的验证机制
与 cookie 类似,Token 身份验证在客户端首次连接到 Web 服务器(登录)时返回 Token。这里唯一的区别是它不会将该信息存储在服务器上。它有一个Token(即所谓的"认证信息"),上面写着“认证成功”,每次发出请求时,都会连同请求头中包含的Token一起发送。
Cookie机制的优缺点
Cookie机制的有点在于可以一直保持会话状态,比如在逛购物网站的时候,能保持一直登录是非常重要的事情。这个时候能够保持登录是非常重要的事情。但由于状态是在服务器端管理的,因此每次发出请求时都会在服务器上引用并保存会话信息。处理可能会稍慢。
Token机制的优缺点
Token认证基本不管理服务器上的认证状态,所以只需要对发送的Token进行验证即可。因此,并行分发在服务器端很容易且可扩展。对于规模较大的服务,Token认证方式可能更适合。 但所需数据量较大,需要考虑存储问题。