cookie ,sesion和token的区别
一、前言
要知道我们访问网站都是通过HTTP协议或HTTPS协议来完成的,HTTP协议它本身是无状态的协议(即:服务器无法分辨哪些请求是来源于同个客户)。而业务层面会涉及到客户端与服务器端的交互(同网站下多个页面间能共享数据),此时服务器端必须要保持会话状态,这样才能进行用户身份的鉴别。 由于HTTP无状态的特性,如果要实话客户端和服务器端的会话保持,那就需要其它机制来实现,于是Cookie和Session应运而生。 cookie主要是网站用于在浏览器临时存放的数据,包括浏览器缓存数据以及服务器设定的一些数据,主要存放在浏览器端。 session主要用于保存会话数据,一般存储在服务器端,同时每一条session对用一个sessionID,sessionID是存放在浏览器的cookie中。 传统上的会话登陆和鉴权主要用session加cookie实现,随着分布式系统的快速演进,尤其是微服务的应用,token+cookie的授权访问机制得到亲睐,通常在用户登录后,服务器生成访问令牌(Access token),浏览器存储cookie中,在每次请求资源时都会在请求头中带上token,用于服务器授权访问使用。
二、cookie和session的用途
通常情况下session和cookie是搭配在一起使用的。

客户端请求:cookie/token
1、cookie请求过程

2、token请求过程

tooken机制下的认证流程
主要需要身份鉴权

三、cookie/token/session
cookie:保存在浏览器中,有大小限制,有状态;
session:保存在服务器中,服务器有资源开销;
Token:客户端可以将Token保存到任何地方,无限制,无状态,利于分布式部署。
本文来自博客园,作者:一路向北转南,转载请注明原文链接:https://www.cnblogs.com/test0615/articles/16041747.html

浙公网安备 33010602011771号