HTTP/HTTPS、SSL/TLS、WS/WSS 都是什么?

news2024/11/29 22:55:58

有同学问我,HTTP/HTTPSSSL/TLSWS/WSS 这都是些什么?那我们就先从概念说起:

  • HTTP 是超文本传输协议,信息是通过明文传输。
  • HTTPS 是在 HTTP 的基础上信息通过加密后再传输。
  • SSL 是实现 HTTPS 信息传输加密的算法。
  • TLS 是 SSL 的经过更新迭代后更安全的版本。

上诉概念可以用一个公式表示:

HTTP + SSL/TLS = HTTPS

由于 HTTPS 的推出受到了很多人的欢迎,在 SSL 更新到 3.0 时,IETF 对 SSL3.0 进行了标准化,并添加了少数机制(几乎和 SSL3.0 无差异),标准化后的 IETF 更名为 TLS1.0 (Transport Layer Security 安全传输层协议)。

可以说 TLS 就是 SSL 的新版本 3.1,并同时发布 “RFC2246-TLS 加密协议详解”,如果想更深层次的了解 TLS 的工作原理可以去 RFC 的官方网站,搜索 RFC2246 即可找到 RFC 文档!

WS/WSS 又是什么呢?其实 WebSocket 才是这篇文章的重点。

WebSocket 协议在 2008 年诞生,2011 年成为国际标准,现在几乎所有浏览器都已经支持了。它的最大特点就是,服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息,是真正的双向平等对话,属于服务器推送技术的一种。

以前,很多网站为了实现实时推送技术,所用的技术都是轮询。轮询是在特定的时间间隔(如每1秒),由浏览器对服务器发出 HTTP 请求,然后由服务器返回最新的数据给客户端。这种传统的模式带来的缺点很明显,即浏览器需要不断的向服务器发出请求,然而HTTP请求包含较多的请求头信息,而其中真正有效的数据只是很小的一部分,显然这样会浪费很多的带宽等资源。在这种情况下,HTML5
定义了 WebSocket 协议,能更好的节省服务器资源和带宽,并且能够更实时地进行通讯。

WebSocket 是一种在单个 TCP 连接上进行全双工通讯的协议,使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在 WebSocket API 中,浏览器和服务器只需要完成一次握手,两者之间就可以创建持久性的连接,并进行双向数据传输。

简单来说,WebSocket 减少了客户端与服务器端建立连接的次数,减轻了服务器资源的开销,只需要完成一次 HTTP 握手。整个通讯过程是建立在一次连接/状态中,也就避免了 HTTP 的非状态性,服务端会一直与客户端保持连接,直到双方发起关闭请求,同时由原本的客户端主动询问,转换为服务器有信息的时候推送。所以,它能做实时通信(聊天室、直播间等),其他特点还包括:

  • 建立在 TCP 协议之上,服务器端的实现比较容易
  • 与 HTTP 协议有着良好的兼容性。默认端口也是80和443,并且握手阶段采用 HTTP 协议,因此握手时不容易屏蔽,能通过各种 HTTP 代理服务器
  • 数据格式比较轻量,性能开销小,通信高效
  • 可以发送文本,也可以发送二进制数据
  • 没有同源限制,客户端可以与任意服务器通信
  • 协议标识符是ws(如果加密,则为wss),服务器网址就是 URL

现在可以回答刚刚那个问题了,WS/WSSWebSocket 的协议标识符,如果 WebSocket 服务是基于 HTTP 协议就使用 WS,如果是 HTTP 协议则是 WSS

一图让你理解 HTTP/HTTPSSSL/TLSWS/WSS 这都是些什么。
请添加图片描述
如果有想要尝试自己实现 WebSocket 服务的可以参考我之前写过的文章:

Python3 如何实现 websocket 服务?

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1166023.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

PMI-ACP(103:17-)

巩固复习:SCRUM Scrum是目前敏捷项目管理的经典框架,在2020年最新版的《Scrum指南》中,Scrum之父对迭代目标和完成的定义进行了更为清晰的阐释。 在Scrum里比较重要的是Sprint冲刺。一个Sprint长度一般是2~4周,固定&…

数据结构:邻接矩阵与邻接表

模型图 邻接矩阵 用于反应图中任意两点之间的关联,用二维数组表示比较方便 以行坐标为起点,列坐标为终点如果两个点之间有边,那么标记为绿色,如图: 适合表示稠密矩阵 邻接表 用一维数组 链表的形式表示&#xff…

day02-Ant Design以及Ant Design Pro入门

课程简介 ReactJS入门,Model层 Ant Design 入门 Ant Design Pro 入门 1、ReactJS入门 1.1、Model 1.1.1、分层 上图中,左侧是服务端代码的层次结构,由 Controller 、 Service 、 Data Access 三层组成服务端系统: Contro…

一分钟生成PPT,利用人工智能快速提高办公效率(无需第三方插件)

人工智能技术的发展正以惊人的速度改变着我们的世界,今天给大家介绍下利用ChatGPT快速生成PPT的方法,它能够帮助你一键生成PPT内容和漂亮的PPT文档,无需繁琐的设计和排版,只需要与ChatGPT交流,你就能轻松拥有一份令人赞…

社区论坛在线交流网站系统源码+SEO优化 带前后端完整搭建教程

大家好,今天罗峰来给大家分享一款社区论坛在线交流网站系统源码。社区论坛在线交流在当下时时代还是很火的。现在人们对于在线交流和互动的需求不断增加。社区论坛作为一种传统的在线交流方式,仍然有着广泛的市场需求和用户群体。然而,现有的…

redis1之安装redis,启动,常用数据结构

目录 redis安装与启动、常见数据结构 启动 Redis客户端 数据结构与常见的命令 redis的通用命令 String类型的用法 Hash命令的用法 List命令 Set命令 SortedSet类型用法 redis安装与启动、常见数据结构 1,在linux上安装上gcc的依赖,我这里是centos7.6…

为什么边缘计算是能源行业缺失的一环

关键要点 展望未来,边缘计算将使能源部门能够更好地应对不断增长的能源需求的挑战,提高资源利用率,并实现更可持续的能源生态系统。 能源行业正在经历重大变革,因为它面临着许多挑战,例如整合可再生能源、电力需求激增…

thinkPHP5怎么打开页面调试,查看网页运行时间

开启trace 在config.php中找到 ‘app_trace’ > false, 修改为: ‘app_trace’ > true,

中国统计年鉴,覆盖2016-2022年数据,超全数据一览!

今天分享一个超详细中国统计年鉴,覆盖2016-2022年数据,包含多方面数据及指标,需要可自取 网站搜索“citybox城市沙盒”或同名wechat订阅号可自行获取 数据信息: 数据名称: 中国统计年鉴 数据格式: Html、Excel 数据时间: 20…

chromedp库编写程序

步骤1:首先,我们需要导入chromedp库,以便使用它来下载网页内容。 import chromedp 步骤2:然后,我们需要创建一个函数,该函数接受一个URL作为参数,并使用chromedp库下载该URL的内容。 func do…

有什么好用的日常事务管理软件?的修APP对日常管理有什么帮助?

在快节奏的现代生活中,我们每天都要面对各种各样的工作任务和琐事。有时候,我们可能会因为忘记重要事项或者没有规划好时间而导致工作效率低下。为了解决这个问题,我为大家推荐一款日常管理神器——的修APP。   的修APP是一款简单易用的日常…

InfiniBand 的前世今生

今年,以 ChatGPT 为代表的 AI 大模型强势崛起,而 ChatGPT 所使用的网络,正是 InfiniBand,这也让 InfiniBand 大火了起来。那么,到底什么是 InfiniBand 呢?下面,我们就来带你深入了解 InfiniBand…

Java——并发编程(CAS、Lock和AQS)

1、Java Concurrent API 中的 Lock 接口(Lock interface)是什么?对比同步它有什么优势? 答:Lock 接口比同步方法和同步块提供了更具扩展性的锁操作。他们允许更灵活的结构,可以具有完全不同的性质,并且可以支持多个相…

Scala中类的继承、抽象类和特质

1. 类的继承 1.1 Scala中的继承结构 Scala 中继承关系如下图: Any 是整个继承关系的根节点; AnyRef 包含 Scala Classes 和 Java Classes,等价于 Java 中的 java.lang.Object; AnyVal 是所有值类型的一个标记; Nul…

AI:51-基于深度学习的电影评价

🚀 本文选自专栏:AI领域专栏 从基础到实践,深入了解算法、案例和最新趋势。无论你是初学者还是经验丰富的数据科学家,通过案例和项目实践,掌握核心概念和实用技能。每篇案例都包含代码实例,详细讲解供大家学习。 📌📌📌本专栏包含以下学习方向: 机器学习、深度学…

渗透测试工具(AntSword)

软件安装 蚁剑渗透测试工具分为AntSword-Loader和antSword两部分 文件下载: AntSword-Loader下载地址:GitHub - AntSwordProject/AntSword-Loader: AntSword 加载器 antSword下载地址:Releases AntSwordProject/antSword GitHub 使用&a…

公司内网知识问答库系统源码 完全开源可二次开发 带完整搭建教程

随着公司规模的扩大和业务复杂性的增加,员工需要更快更有效地获取和共享知识。一个内部的知识问答库系统可以帮助公司提高员工的工作效率和知识管理水平。 有效的内部沟通是公司成功的关键因素之一。通过创建一个内部的知识问答平台,可以鼓励员工之间的…

入门指南|机器人流程自动化(RPA)在数字营销中的8大应用

虽然现在的话题度不及ChatGPT,但近两年最火的MarTech工具非RPA莫属。今天我们就来看看:资本宠儿、号称世界500强中超过70%的企业都在使用、老板心中最佳员工RPA到底是什么?以及在营销与运营中有哪些应用? 01 RPA是什么&#xff1f…