1. cookie、session、token三者的定义:
1.1 cookie
Cookie 在计算机中是个存储在浏览器目录中的文本文件,当浏览器运行时,存储在 RAM 中发挥作用 (此种 Cookies 称作 Session Cookies),一旦用户从该网站或服务器退出,Cookie 可存储在用户本地的硬盘上 (此种 Cookies 称作 Persistent Cookies)。
cookie的执行流程:
1.2 session
session是对于服务器端来说的,客户端是没有session一说的。session时服务器端和客户端建立连接时添加客户端连接标准,最终会在服务器软件(Apache、Tomcat、JBoss)转化为一个临时Cookie发送给客户端,当客户端第一请求时服务器端会检查是否携带了这个session(临时Cookie),如果没有则会添加session,如果有就拿出这个session来做相关操作。
1.3 token
token是用户身份的验证方式,我们通常叫它:令牌。最简单的token组成:uid(用户唯一的身份标识)、time(当前时间的时间戳)、sign(签名,由token的前几位+盐以哈希算法压缩成一定长的十六进制字符串,可以防止恶意第三方拼接token请求服务器)。还可以把不变的参数也放进token,避免多次查库。
2. 登录时记录http的状态:有两种方案
第一种方式
结合cookie和session去保持用户的登录状态
第二种方式
通过token方式维持状态
如果前端和后台接口之间不存在跨域问题,则使用cookie和session来维持登录状态;
如果前端和后台接口之间存在跨域问题,则使用token维持状态
- 登录——token 原理分析
token的作用是: 客户端和服务器端的身份校验