Cookie鉴权方式
Cookie包括名字、值、过期时间、路径和域。路径和域构成cookie的作用范围。如果不设置时间,cookie的声明期为浏览器会话期间,关闭浏览器,cookie消失,成为会话cookie.会话cookie一般不存储在硬盘而是保存在内存中,如果设置过期时间,那么cookie存储在硬盘中。
cookie在用户第一次登陆时,在服务端生成一个专属cookie,并通过接口响应头返回客户端,被客户端浏览器回去后自动存储到浏览器Cookie中。
在用户第2到N次进行接口请求的时候,会自动带上浏览器中存储的cookie,服务器获取到接口请求头中的cookie时会与服务器中的cookie进行比对鉴权。所以cookie适用于简单,不重要的数据存储。
Session鉴权方式
Session是依赖于Cookie的,出于安全性考虑,不能将重要信息存在Cookie中,于是服务端在接受用户第一次请求的时候,会生成一个Session存储在服务端内存当中,并生成一个sessionid返回客户端。客户端会将其存在浏览器的Cookie中。
在用户第2到N次进行接口请求的时候,会自动带上浏览器中存储的sessionid,服务器获取到接口请求头中的sessionid时会与服务器中的sessionid进行比对鉴权。session同样会有一段生命周期,每一段生命周期生成的sessionid都不相同。所以session适用于少量的重要信息存储。
Token鉴权方式
由于Session是存储到服务端内存当中的,所以不能同时接受大量的数据请求,容易将服务器内存撑爆,所以可以使用token解决。
服务端在接受用户第一次请求的时候,会生成一个token储在服务端硬盘当中,由数据库管理并将加密后的签名token返回客户端。由用户自己保管,在第2次到第N次请求数据的时候,将token放在请求头或是请求体中,发送到服务端进行比对鉴权。
token适用于大量重要信息存储,主要是安全