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 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> cookie session token区别(简单原理理解) -> 正文阅读

[网络协议]cookie session token区别(简单原理理解)

HTTP 协议是一种无状态协议,即每次服务端接收到客户端的请求时,都是一个全新的请求,服务器并不知道客户端的历史请求记录;Session 和 Cookie 的主要目的就是为了弥补 HTTP 的无状态特性。简单来说,比如我登录淘宝网,点击我的购物车,会发起一个网络请求,因为http协议是无状态的,淘宝网并不知道是我发起的请求,会在需要输入用户密码,这显然不合理,cookie及session可以理解为在每次请求时保存我个人的信息。

Cookie

HTTP 协议中的 Cookie 包括 Web Cookie 和浏览器 Cookie,它是服务器发送到 Web 浏览器的一小块数据。服务器发送到浏览器的 Cookie,浏览器会进行存储,并与下一个请求一起发送到服务器。通常,它用于判断两个请求是否来自于同一个浏览器,例如用户保持登录状态。

浏览器发起请求,服务器会进行cookie设置也就是set-cookie, cookie一般是kv结构,cookie发给浏览器之后,浏览器会保存起来,以后每个请求会带上这个cookie,这就免除了上面举例的每次都输入账户密码的繁琐

?

cookie不足

如果简单的把账号密码存在cookie中,他人很容易通过浏览器拿到cookie,此时你的账户密码就完全暴露在别人面前,显然这很不安全。

Session

session可以说是cookie的进化版,session主要包含了session Id和结束会话时间,此时我们登录淘宝网,输入账号密码,淘宝网服务器验证我们的账号密码,并生成一个session Id和结束时间(一般是确定的 设置好的) 这时,服务器把sessionId加入到cookie中,并把cookie有效期设置为session中的时间。

session较cookie优势

即使他人拿到了我浏览器里面包含了session的cookie,他也无可奈何,因为session只是一段随机的字符串,其次服务器发送cookie之前会对含sessionId的cookie签名,防止了篡改的发生

token

首先需要简单了解以下JWT也就是JSON WebToken,用户输入账户密码,会生成一个JWT,服务器只用保存JWT签名和密文,接着把JWT发送给浏览器,和session类似,以后每次用户发送请求便不需要输入账户密码了

jwt一般由三部分组成:

?

header部分声明使用的签名算法,payload一般是特定的数据,比如有效期,header和payload会用base64编码(不是加密)再由header声明的算法得到signature,

(ssm后端中JWT类)

?总结:session诞生并保存在服务器,服务器主导一切,cookie可以看成session的数据载体(当然自己也可以实现用户的登录状态验证),cookie跟随每个HTTP请求发送,token诞生于服务器,保存于浏览器,token就像一个令牌,有了它便可以访问服务器。

本文参考自b站Cookie、Session、Token究竟区别在哪?如何进行身份认证,保持用户登录状态?_哔哩哔哩_bilibili

?
?

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章           查看所有文章
加:2022-01-14 02:22:35  更:2022-01-14 02:25:09 
 
开发: 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/26 12:35:51-

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