IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> JWT对比Session -> 正文阅读

[系统运维]JWT对比Session

1 回顾Session

1.1 cookie-session会话机制(会话管理)

HTTP特点:无记忆性,请求响应式。HTTP的无记忆性会产生问题
客户端A\B都可以对服务器发起请求,但由于HTTP协议的无记忆性,服务器没办法记住客户端是谁。为了解决这个问题,引入了会话管理

客户端(browser浏览器)与服务器(server)之间的会话管理

会话A
客户端A
服务器
会话B
客户端B
服务器

会话管理的实现:

客户端A和服务器的第一次交互:

  1. 客户端A发起请求到服务器,比如需要一张图片
  2. 服务器收到请求,产生一个HttpSession对象(有一个唯一的ID值)
  3. 服务器存储这个HttpSession对象,在服务器中分配一定的空间
  4. 服务器产生一个cookie对象,将JSESSIONID存入cookie,并发送给客户端(浏览器),存储在浏览器。

客户端A和服务器的第n次交互:

  1. 客户端A发起请求到服务器,携带cookie对象的JSESSIONID
  2. 服务器检查到客户端A的JSESSIONID,不产生HttpSession对象
  3. 从现有的HttpSession对象中查找此ID。如果ID存在,指定session操作。 如果ID不存在,可能产生一个新的session

2 Session会话管理存在的问题

  1. 在实际情况下,服务器不止一台,但这几台服务器应当扮演同一个角色。如果客户端A和服务器A建立了关系,服务器A保存了session对象,但是服务器B并没有这个数据。如果客户端A在另一天的时候,访问的是服务器B,那么就找不到session对象。所以需要使得服务器同步,这是一件很麻烦的事。
  2. session存储数据大量存在于服务器中,对服务器的压力较大

总结:Session会话管理在多服务器中有局限性。 在多服务器时,可以选择使用JWT

3 JWT的概念

JWT(JSON Web Token): 是一个开发的标准,用于在各方之间以JSON对象安全地传输信息。这些信息通过数字签名进行验证和授权。可以使用“RSA”的"公钥/私钥对"对JWT进行签名。

在这里插入图片描述
JWT的验证方式:

  1. 客户端输入账号和密码
  2. 服务器验证成功,使用私钥创建一个JWT(可想象成一个工牌,是独有的),返回给客户端
  3. 客户端再次访问服务器,将JWT串在请求中发送给服务器
  4. 服务器验证JWT
  5. 验证成功,读取资源。验证失败,拒绝访问。

优势:服务器只需要记住JWT(工牌)就行了,不需要记住很多东西

4 JWT的组成

4.1 header(头部)

加密算法:SHA-256

4.2 payload(载荷)

携带数据

audit:JWT的接收者

4.3 signature(签名)

签名配合载荷,组成唯一的数据。签名用来验证身份。

签名算法,使用密码签名

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-04-01 23:49:45  更:2022-04-01 23:51:13 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 23:48:17-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码