目录
一.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服务器,其次需要客户端
然后要客户端跟服务器进行连接
连接之后就可以 订阅主题 收到该主题发布的信息 ,向特定主题发布信息