session、cookie和token的区别
session(会话)
session是用户使用web应用请求服务的时候,在服务器端生成的一次会话证明,这个证明会临时保存在服务器端,当用户离开网站或浏览器结束web访问的时候就会被销毁。
服务器为了区分当前向自己请求服务的是谁,给每个用户分发了一个唯一的“身份标识”(也就是sessionID),当用户使用客户端向服务端发送请求的时候,需要携带该sessionID才能正确请求到服务。
浏览器和服务器使用session进行交互的过程
cookie

cookie是在浏览器客户端存储的一种数据。cookie由服务器生成,发送给浏览器,浏览器把它以文件的形式保存在浏览器的某个目录中。在下一次请求同一网站的时候浏览器会把该cookie发送给服务器,由服务器使用用户名和口令对cookie进行验证。
cookie的请求流程
token(令牌)
token 也称作令牌,由uid+time+sign[+固定参数]加密后生成。
token 的认证方式类似于临时的证书签名, 并且是一种服务端无状态的认证方式。所谓无状态就是服
务端并不会保存身份认证相关的数据。
组成
- uid: 用户唯一身份标识
- time: 当前时间的时间戳
- sign: 签名, 使用 hash/encrypt 压缩成定长的十六进制字符串,以防止第三方恶意拼接
- 固定参数(可选): 将一些常用的固定参数加入到 token 中是为了避免重复查库
token认证过程
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 BayMRX!
评论