HTTP协议 HTTPS协议 MQTT协议介绍

2024-09-08 03:28
文章标签 介绍 协议 http https mqtt

本文主要是介绍HTTP协议 HTTPS协议 MQTT协议介绍,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

一.HTTP协议

1. HTTP 协议介绍

基本介绍:

协议: 

注意:

2. HTTP 协议的工作过程

基础术语:

客户端: 主动发起网络请求的一端

服务器: 被动接收网络请求的一端

请求: 客户端给服务器发送的数据

响应: 服务器给客户端返回的数据

HTTP 协议的重要特点: 一发一收,一问一答

注意: 网络编程中,除了一发一收之外,还有其它的模式

二.HTTPS协议

1. HTTPS 是什么

2. “加密”是什么

加密相关术语:

明文:要传输的原始的消息

密文:通过一定的规则将明文变换后的内容

加密:将明文变成密文

解密:将密文变成明文

密钥:在加密和解密的过程中,往往需要一个或多个中间的数据来辅助该过程,这样的数据称为密钥

为什么需要 HTTPS,为什么需要加密?

3.HTTP 和 HTTPS 的区别

(1) 端口 : 

(2) 安全性。

(3) 效率:

(4) 成本:

三.MQTT协议介绍与应用

介绍

特性

1,使用发布/订阅消息模式,提供一对多的消息发布,解除应用程序耦合。

2,对负载内容屏蔽的消息传输。

3,使用TCP/IP提供网络连接。

4,有三种消息发布服务质量:

5,小型传输,开销很小(固定长度的头部是2字节),协议交换最小化,以降低网络流量。

6,使用Last Will和Testament特性通知有关各方客户端异常中断的机制。

实现方式

MQTT传输的消息分为:主题(Topic)和负载(payload)两部分:

1,Topic,可以理解为消息的类型,订阅者订阅(Subscribe)后,就会收到该主题的消息内容(payload);

2,payload,可以理解为消息的内容,是指订阅者具体要使用的内容。

应用


一.HTTP协议

1. HTTP 协议介绍

基本介绍:

HTTP(Hyper Text Transfer Protocol): 全称超文本传输协议,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议

HTTP 是一种应用层协议,是基于 TCP/IP 通信协议来传递数据的,其中 HTTP1.0、HTTP1.1、HTTP2.0 均为 TCP 实现,HTTP3.0 基于 UDP 实现。现主流使用 HTTP1.0 和 HTTP3.0

协议: 

为了使数据在网络上从源头到达目的,网络通信的参与方必须遵循相同的规则,这套规则称为协议,它最终体现为在网络上传输的数据包的格式

(通俗点讲,协议就是要保证网络通信的双方,能够互相对接上号。就像是两个人传递纸条通过互相指定的暗号,如果发送天亮了,表示可以打游戏了等等)

注意:

当我们访问一些网页时,是显示通过 HTTPS 来进行通信的,并且当下大多数的网页都是通过 HTTPS 来进行通信的,因为 HTTPS 在 HTTP 的基础上做了一个加密的工作。HTTPS 将在本文末尾具体介绍

2. HTTP 协议的工作过程

当我们在浏览器输入一个网址,此时浏览器就会给对应的服务器发送一个 HTTP 请求,对应的服务器收到这个请求之后,经过计算处理,就会返回一个 HTTP 响应。并且当我们访问一个网站时,可能涉及不止一次的 HTTP 请求和响应的交互过程

基础术语:
客户端: 主动发起网络请求的一端
服务器: 被动接收网络请求的一端
请求: 客户端给服务器发送的数据
响应: 服务器给客户端返回的数据
HTTP 协议的重要特点: 一发一收,一问一答

注意: 网络编程中,除了一发一收之外,还有其它的模式

多发一收:例如上传大文件

一发多收:例如看直播时,搜索一个词条可以得到多个视频源

多发多收:例如串流(steam link、moonlight 等等)

二.HTTPS协议

1. HTTPS 是什么

HTTPS (Hyper Text Transfer Protocol over SecureSocket Layer):

HTTPS 是一种应用层协议,是一种透过计算机网络进行安全通信的传输协议。

HTTPS 经由 HTTP 进行通信,但是在 HTTP 的基础上引入了一个加密层,使用 SSL/TLS 来加密数据包

HTTPS 开发的主要目的,是提供对网站服务器的身份认证,保护交换数据的隐私与完整性。

HTTPS 默认工作在 TCP 协议443端口

2. “加密”是什么

加密相关术语:
明文:要传输的原始的消息
密文:通过一定的规则将明文变换后的内容
加密:将明文变成密文
解密:将密文变成明文
密钥:在加密和解密的过程中,往往需要一个或多个中间的数据来辅助该过程,这样的数据称为密钥
为什么需要 HTTPS,为什么需要加密?

前几年有一个运营商劫持事件,由于我们通过网络传输的任何数据都会经过运营商的网络设备(路由器、交换机等),那么运营商的网络设备就可以解析出我们传输的数据内容,并进行篡改。

比如你要在下某个软件,当你点击下载时,其实就是在给服务器发送一个 HTTP 请求,获取到的 HTTP 响应本应该包含该软件的下载链接,但是经过运营商劫持后,就可以将这个响应给篡改成其它软件的下载链接,使得篡改者可以获取非法的利益。

上述的例子不止运营商可以劫持,一些黑客或非法人员都可以通过这种手段来窃取用户隐私或者篡改内容。

故 HTTPS 的出现,使用密文传输进一步的保证了用户的信息安全

3.HTTP 和 HTTPS 的区别

(1) 端口 : 

HTTP默认使⽤端口80,⽽HTTPS的默认使⽤端口443。

(2) 安全性。
(3) 效率:

HTTPS协议多次握手,导致页面的加载时间是HTTP的2-100倍;

HTTPS连接缓存不如HTTP高效,会增加数据开销和功耗;

SSL涉及到的安全算法会消耗 CPU 资源,对服务器资源消耗较大(可以使用SSL加速器进行加速)。

(4) 成本:

申请SSL证书需要钱,功能越强大的证书费用越高。

三.MQTT协议介绍与应用

介绍

MQTT最大优点在于,可以以极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务。

MQTT是为硬件性能低下的远程设备以及网络状况糟糕的情况下而设计的发布/订阅型消息协议,为此,它需要一个消息中间件,以解决当前繁重的资料传输协议,如:HTTP。

MQTT作为一种低开销、低带宽占用的即时通讯协议,使其在物联网、小型设备、移动应用等方面有较广泛的应用。

特性

1,使用发布/订阅消息模式,提供一对多的消息发布,解除应用程序耦合。
2,对负载内容屏蔽的消息传输。
3,使用TCP/IP提供网络连接。
4,有三种消息发布服务质量:

“至多一次”,消息发布完全依赖底层TCP/IP网络。会发生消息丢失或重复。

“至少一次”,确保消息到达,但消息重复可能会发生。

“只有一次”,确保消息到达一次。在一些要求比较严格的计费系统中,可以使用此级别。

5,小型传输,开销很小(固定长度的头部是2字节),协议交换最小化,以降低网络流量。
6,使用Last Will和Testament特性通知有关各方客户端异常中断的机制。

Last Will:即遗言机制,用于通知同一主题下的其他设备发送遗言的设备已经断开了连接。

Testament:遗嘱机制,功能类似于Last Will。

实现方式

实现MQTT协议需要客户端和服务器端通讯完成,在通讯过程中,MQTT协议中有三种身份:发布者(Publish)、代理(Broker)(服务器)、订阅者(Subscribe)。

其中,消息的发布者和订阅者都是客户端,消息代理是服务器,消息发布者可以同时是订阅者。

MQTT传输的消息分为:主题(Topic)和负载(payload)两部分

1,Topic,可以理解为消息的类型,订阅者订阅(Subscribe)后,就会收到该主题的消息内容(payload);
2,payload,可以理解为消息的内容,是指订阅者具体要使用的内容。

客户端可以建立与服务器的连接,订阅主题、接受消息、发布消息等

服务器可以是一个应用程序或一台设备。用于接受来自客户端的网络连接,接受发布的消息、转发订阅相关主题的客户端的消息、等

应用

应用首先需要 MQTT服务器,其次需要客户端

然后要客户端跟服务器进行连接

连接之后就可以 订阅主题 收到该主题发布的信息 ,向特定主题发布信息

这篇关于HTTP协议 HTTPS协议 MQTT协议介绍的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1146977

相关文章

Maven 配置中的 <mirror>绕过 HTTP 阻断机制的方法

《Maven配置中的<mirror>绕过HTTP阻断机制的方法》:本文主要介绍Maven配置中的<mirror>绕过HTTP阻断机制的方法,本文给大家分享问题原因及解决方案,感兴趣的朋友一... 目录一、问题场景:升级 Maven 后构建失败二、解决方案:通过 <mirror> 配置覆盖默认行为1. 配置示

MybatisPlus service接口功能介绍

《MybatisPlusservice接口功能介绍》:本文主要介绍MybatisPlusservice接口功能介绍,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友... 目录Service接口基本用法进阶用法总结:Lambda方法Service接口基本用法MyBATisP

MySQL复杂SQL之多表联查/子查询详细介绍(最新整理)

《MySQL复杂SQL之多表联查/子查询详细介绍(最新整理)》掌握多表联查(INNERJOIN,LEFTJOIN,RIGHTJOIN,FULLJOIN)和子查询(标量、列、行、表子查询、相关/非相关、... 目录第一部分:多表联查 (JOIN Operations)1. 连接的类型 (JOIN Types)

Linux中修改Apache HTTP Server(httpd)默认端口的完整指南

《Linux中修改ApacheHTTPServer(httpd)默认端口的完整指南》ApacheHTTPServer(简称httpd)是Linux系统中最常用的Web服务器之一,本文将详细介绍如何... 目录一、修改 httpd 默认端口的步骤1. 查找 httpd 配置文件路径2. 编辑配置文件3. 保存

java中BigDecimal里面的subtract函数介绍及实现方法

《java中BigDecimal里面的subtract函数介绍及实现方法》在Java中实现减法操作需要根据数据类型选择不同方法,主要分为数值型减法和字符串减法两种场景,本文给大家介绍java中BigD... 目录Java中BigDecimal里面的subtract函数的意思?一、数值型减法(高精度计算)1.

Pytorch介绍与安装过程

《Pytorch介绍与安装过程》PyTorch因其直观的设计、卓越的灵活性以及强大的动态计算图功能,迅速在学术界和工业界获得了广泛认可,成为当前深度学习研究和开发的主流工具之一,本文给大家介绍Pyto... 目录1、Pytorch介绍1.1、核心理念1.2、核心组件与功能1.3、适用场景与优势总结1.4、优

在Spring Boot中实现HTTPS加密通信及常见问题排查

《在SpringBoot中实现HTTPS加密通信及常见问题排查》HTTPS是HTTP的安全版本,通过SSL/TLS协议为通讯提供加密、身份验证和数据完整性保护,下面通过本文给大家介绍在SpringB... 目录一、HTTPS核心原理1.加密流程概述2.加密技术组合二、证书体系详解1、证书类型对比2. 证书获

Java实现本地缓存的常用方案介绍

《Java实现本地缓存的常用方案介绍》本地缓存的代表技术主要有HashMap,GuavaCache,Caffeine和Encahche,这篇文章主要来和大家聊聊java利用这些技术分别实现本地缓存的方... 目录本地缓存实现方式HashMapConcurrentHashMapGuava CacheCaffe

MQTT SpringBoot整合实战教程

《MQTTSpringBoot整合实战教程》:本文主要介绍MQTTSpringBoot整合实战教程,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考... 目录MQTT-SpringBoot创建简单 SpringBoot 项目导入必须依赖增加MQTT相关配置编写

Spring Security介绍及配置实现代码

《SpringSecurity介绍及配置实现代码》SpringSecurity是一个功能强大的Java安全框架,它提供了全面的安全认证(Authentication)和授权(Authorizatio... 目录简介Spring Security配置配置实现代码简介Spring Security是一个功能强