会话技术
一、会话技术
1.会话:用户打开浏览器,访问web服务器的资源,会话建立,直到一方断开连接,会话结束。再一次会话中可以包含多次请求和响应。
2.会话跟踪:一种维护浏览器状态的方法,服务器需要识别多次请求是否来自于同一浏览器,以便在同一次会话的多次请求间共享数据。
二、会话跟踪
1.客户端会话跟踪技术:Cookie
(1)优点:HTTP协议中支持的技术
(2)缺点:
- 移动端APP无法使用Cookie
- 不安全,用户可以自己禁用Cookie
- Cookie不能跨域(跨域区分三个维度:协议、IP/域名、端口)
2.服务端会话跟踪技术:Session
(1)优点:存储在服务端,安全
(2)缺点:
- 服务器集群环境下无法直接使用session
- Cookie的缺点
3.令牌技术
(1)优点:
- 支持PC端、移动端
- 解决集群环境下的认证问题
- 减轻服务器端存储压力
(2)缺点:需要自己实现
三、JWT令牌
1.简介
(1)全称:Json Web Token(https://jwt.io/)
(2)定义了一种简洁的、自包含的格式,用于在通信双方以json数据格式安全的传输信息。由于数字签名的存在,这些信息是可靠的。
2.组成
(1)第一部分:Header(头),记录令牌类型,签名算法等。
(2)第二部分:Payload(有效载荷),携带一些自定义信息、默认信息等。
(3)第三部分:Sinature(签名),防止Token被篡改、确保安全性。将header、payload,并加入指定密钥,通过指定算法计算而来。
3.场景:登录认证
(1)登陆成功后,生成令牌;
(2)后续每个请求,都要携带令牌,系统每次在请求处理之前,先校验令牌,通过后,再处理。
4.JWT-生成
5.JWT校验
6.注意事项
(1)JWT校验时使用的签名密钥,必须和生成JWT令牌时使用的密钥是配套的;
(2)如果JWT令牌解析校验时报错,则说明JWT令牌被篡改或失效了,令牌非法。