从物联网需求到MQTT协议(中)|学习笔记

简介: 快速学习从物联网需求到MQTT协议(中)

开发者学堂课程【大咖带你聊物联网:从物联网需求到MQTT协议(中)】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/571/detail/7778


从物联网需求到 MQTT 协议(中)

一、 HTTP 协议

二、理解 HTTP 协议

三、HTTP 协议产生背景

四、实例感受 HTTP 协议的过程和特点

五、HTTP 的访问的流程


一、HTTP 协议

HTTP 协议 ( HyperText Transfer Protocol ,超文本传输协议)是因特网上应用最为广泛的一种网络传输协议,所有的 wwW 文件都必须遵守这个标准。

HTTP 是一个基于 TCP/IP 通信协议来传递数据( HTML 文件,图片文件,查询结果等)。

应用层:HTTP、TLS、SSL

传输层:TCP

网络层:IP

网络接口层:数据链路层

其实网络是一个 HTTP 协议为主,HTTP 协议主要是为了传输网页,HTTP 协议的全称叫做超文本传输协议,那所谓超文本就是文本可以通过点击链接链接到其它的文本或者其它的网页上,HTTP 协议是网上最流行最为广泛的网络咨询,所有的 WWW 的文件都必须遵循这个标准 HTTP 协议,它是一个应用层的协议,而它是基于 TCPIP 的通讯协议进行传输的,所以它是一个应用层的协议,HTTP 的协议发展也很多年了,所以在 HTTP 协议经常可以看到 HTTPS,HTTPS 是对 HTTP 进行加密,同时也有 HTTPR 的这个后续衍生的这个协议。那这些协议都是在应用层的它是在 TCPIP 包之上。

HTTP 协议有很多的特点,它的特点呢,都是为了互联网上免费了浏览网页设计的,所以它这些特点是更适合去浏览网页。


二、理解 HTTP 协议

1、HTTP 是单向的。客户端必须发起连接。在 loT 应用程序中,设备或传感器通常是客户端,这意味着它们无法被动地接收来自网络的命令。

第一个特点,这里问题的需求就是 HTTP 是单向的,它的通讯方式是浏览器进行一个请求到外部服务器那个服务器给一个响应,这个方式其实跟单片机里面常说的一个彩信方式是比较像相近的,它请求的时候是发一个 HTTP 的协议,这一点自然包含了 url ,就是这个网络访问的地址,而当接收到这个请求之后,服务器才会响应一个请求,所以它是一个单向的单向发起,只会从浏览器端进行发起的请求,到外部服务器要普及才会第一个响应。

比如这里我们有一个网页是我们的微信公众号的一个后台,当不去刷新它的时候,这里的数据其实它都不会自己去更新,也就是这个浏览器当不去发起一个访问请求的时候,服务器不会主动推送数据过来。

在网址这里进行了一个刷新,刷新之后就会看到这里的浏览数据进行了一个变更,就是这里发去请求了之后,回传回来的数据,在这里就是服务器给的响应在这里发生了变更。如果不进行刷新的话,数据是不会进行变更的。

有一些情况可能会主动去提示需要去更新,或者是需要去刷新,或者比如说一些网页实现浏览器的一些即时通信工具,它是怎么实现刷新的,可能选用了其它的通讯协议,或者是在类似于基于这样新的之外运用了其它比如 web shop 的这样的协议进行了刷新。

但是纯粹的 HTTP 协议是如果你不去刷新,它是不会主动去刷新的,但是也可以在网页设计的时候做一个定期的刷新的设计。

2、HTTP 是一种1对1协议。客户端发出请求,服务器进行响应。将消息传送到网络上的所有设备上,不但很困难,而且成本很高,而这是 loT 应用程序中的一种常见使用情况。

一个提议客户端发送请求之后,服务器进行响应,客户端对服务器进行访问的时候是相对独立的,跟另外的客户端访问它是不相关的一件事情,但是物联网的需求设备之间是需要进行信息进行互通的,比如说我们的发布者和订阅者进行了数据的互通,但是网页访问的时候实际上它是可以简单的看成是多个阅读者去这个图书馆进行阅读的一个关系,相同的一本书可以多个阅读者,同时把一个网页同时打开,它们进行一个阅读。

比如说登录阿里云的时候,这里有一个超时登录,登录的时候,需要带登录数据。

点击登录之后是传给了外部服务器,外部服务器进行处理,就是刚刚相当于这个 PPT 里面把一个终端对服务器进行了启动服务器的响应,但是在这个请求里面它它是带了自己的数据给服务器,但是服务器是很难具备把它带过去的数据进行分发,如果用另外一个网页去访问相同的地址的话,实际上是很难获取其它的中断,另外一个浏览器去访问这个服务器带过去的这个数据,因为 HTTP 协议主要是这个请求跟响应的这么一个过程,而且请求的数据如果是携带客户端的数据,这个数据量是非常少的协议。

3、HTTP 是一种有许多标头和规则的重量级协议。http 协议比较重,url、head、content 都要携带很多内容,不适合传输能力比较弱的设备。它不适合低功耗、低处理能力、低带宽的网络。

它的协议是一个重量级的协议,它带有了很多的标图,还有规则也比较复杂,那些协议它比较重主要体现在它的协议携带的内容都很多,虽然包结构并不是很复杂,但是包里面包含的内容,每次访问的时候,其实都它的所需要的字符数是比较多的。比如访问一个地址的时候,那个UI而往往都会很长。那这些字符串如果由单片机去处理的话,就会变得非常消耗资源。

同时,HTTP 协议它的传输的过程是建立连接之后传完了之后就会关闭连接,所以如果传输一次消息,它的开销都很大,那它每次建立连接的过程的开销会在反复使用的过程中会叠加,这样每一次进行客户端与服务器通信的时候,开销都非常大。

客户端与服务器的 Http 协议过程是客户端建立连接并发送请求信息,服务器发送响应信息,客户端关闭与服务器的链接。


三、HTTP 协议产生背景

看到在互联网中间的一些数据,如果 HTTP 去实现这个的话,就有一点像一个访问窗口,访问的时候有中断方式和查询方式,如果强行的用 HTTP 去实现这个就有一点像查询方式去获取。结果这个代价就会非常大,开销也非常大,最后并不能达到预期的一个效果。所以在互联网时代到来之后,产生一个新的协议更符合这样一个网络结构和网络形态,需完成物联网和性的一个需求,这时候HTTP的协议就诞生了。


四、实例感受 HTTP 协议的过程和特点

服务器有一个配置文件,这个配置文件就是说明用浏览器来访问这个服务器的时候,服务器作为一个外部服务器,作为一个页面的服务器,怎样去提供这个服务。

首先进入 ETC 文件夹,可以直接切换 nginxx 的,里面有一个 nginx.CONS,把它打开看一下这个服务器的 nginx 配置是在这个文件,这个配置文件决定了什么?

首先监听80端口就是一个默认的这个服务器。第二个它的根目录就当访问着一个域名或者这个 IP 地址的时候,当访问没有没有后续的,没有后缀的,举个例子,比如说阿里云,当我访问这个地址的时候,它所呈现的一个服务器的存储的位置,被 ROOT 行指定。

服务器的地址里面有 404.html  50x.html  index.html nginx-logo.png poweredby.png

访问这个地址的时候,就呈现了 HTML 文件,其中 HTML 文件指定了两个图片,它的访问过程,可以按F12点在works,那访问的过程的第一个返回来,这个强行发行一下,第一个返回了200,回答一个文件,这个文件就是HTML文件,点这个内容可以看到两个图片还有没找到的图标,404表示名字找到这三个属性都已经找到了文档图片,这两个图片都是包含在 Index 的,这就是一个访问的过程。


五、HTTP 的访问的流程

用一个抓包工具,可以自己在网上去下载,可以查看这个工具的使用方法,网上都很多,打开这个工具之后,就可以利用这个工具来监控开放接口,就是这样一个流程,首先这里现在是 WiFi  接入到选中的 WiFi 接口,需要关心想监控的这些内容,这里写一个原服务器 SRZ 原服务器的 IP 地址就是刚刚建的这个服务器的地址,配好了 IP 地址后点击这个按钮选择不保存,然后就在监控这个 IP 地址,然后强制刷新一下。

就找到了很多包,其实关掉那个占内存,可以看到发出的请求,右键点击,最终选择 HTTP6 ,这里就是把所有的跟这个服务器交互的 HTTP 都找到了,第一部分就是 HTTP 协议的一个请求,这里面有前面我说过的帧结构,请求协议许多类型协议类型 IP 地址等等,然后返回的内容,第一部分是 HTTP 返回的包,表示200已经找到,然后当前的服务器的版本一堆信息,然后就是返回的内容,下面的这个内容,可以看到跟网页上的 HTML 内容是保持一致的。

所以这个过程呢,首先是请求响应发送请求消息,然后一个关闭连接就直接就完成了这么一个过程,看不到关闭连接因为它自动就切断了。

第二个,从大量的篇幅来看申请一个很简单,如果是申请一个很简单的数据,这里的文件是比较大,比如说更换到一个文件,把这个删除然后按照 HTML 的格式写一个最简单的文件,定义成 Hello World ,然后保存,然后将这个文件这个文件上传到刚刚的文件夹,这个文件夹里面已经有 Index ,那再通过查询,然后再访问这个 IP 地址,就会出现写进去的 Hello World 。

再跟踪一下这个最简单的 HTML 返回的过程,选择先找到地址,现在跟踪一下这个IP地址数据流,强制刷新一下,所以之后可以看到一个 HTML2 返回的200,直接跟踪的 HTTP 可以看到现在返回的过程返回的内容就是刚刚写的这个内容。

相关实践学习
阿里云AIoT物联网开发实战
本课程将由物联网专家带你熟悉阿里云AIoT物联网领域全套云产品,7天轻松搭建基于Arduino的端到端物联网场景应用。 开始学习前,请先开通下方两个云产品,让学习更流畅: IoT物联网平台:https://iot.console.aliyun.com/ LinkWAN物联网络管理平台:https://linkwan.console.aliyun.com/service-open
相关文章
|
消息中间件 安全 物联网
海量接入、毫秒响应:易易互联基于 Apache RocketMQ + MQTT 构筑高可用物联网消息中枢
易易互联科技有限公司是吉利集团旗下专注于换电生态的全资子公司,致力于打造安全、便捷、便宜的智能换电网络。公司依托吉利GBRC换电平台,基于电池共享与车辆全生命周期运营,已布局超470座换电站,覆盖40多个城市,计划2027年达2000座。面对海量设备高并发连接、高实时性要求及数据洪峰挑战,易易互联采用阿里云MQTT与RocketMQ构建高效物联网通信架构,实现稳定接入、低延迟通信与弹性处理,全面支撑其全国换电网络规模化运营与智能化升级。
848 1
海量接入、毫秒响应:易易互联基于 Apache RocketMQ + MQTT 构筑高可用物联网消息中枢
|
数据采集 传感器 监控
Modbus 与 MQTT 协议兼容:MyEMS 的泛在能源数据采集技术实现
MyEMS深度融合Modbus与MQTT协议,破解能源数据采集中协议碎片化、网络异构、数据孤岛等难题。通过Modbus接入95%以上工业设备,实现现场数据精准“拉取”;依托MQTT构建高效物联网传输通道,支持多源数据主动“推送”与云端集成。边缘侧采集规整,中心侧汇聚分析,形成统一、可靠、低延迟的数据流。该架构兼具高兼容性、强扩展性与低运维成本,广泛应用于工业园区、商业楼宇及集团型企业,支撑实时监控、AI分析与跨系统融合,打造泛在互联的能源数据底座,助力企业实现全面智慧能源管理。
755 6
|
数据采集 监控 网络协议
​MCP协议深度解析:原理、应用与物联网时代的机遇-优雅草卓伊凡
​MCP协议深度解析:原理、应用与物联网时代的机遇-优雅草卓伊凡
1926 40
​MCP协议深度解析:原理、应用与物联网时代的机遇-优雅草卓伊凡
|
物联网
(手把手)在华为云、阿里云搭建自己的物联网MQTT消息服务器,免费IOT平台
本文介绍如何在阿里云搭建自己的物联网MQTT消息服务器,并使用 “MQTT客户端调试工具”模拟MQTT设备,接入平台进行消息收发。
4242 42
|
物联网
如何在腾讯云等平台搭建自己的物联网MQTT服务器Broker
物联网技术及MQTT协议被广泛应用于各种场景。本文介绍物联网MQTT服务助手下载,如何搭建自己的物联网平台,并使用 “MQTT客户端调试工具”模拟MQTT设备,接入平台进行消息收发。
1073 37
|
监控 物联网 网络性能优化
【杂谈】-MQTT与HTTP在物联网中的比较:为什么MQTT是更好的选择
通过上述分析,可以看出MQTT在物联网应用中的确是更好的选择。其高效的通信模型、低带宽消耗、稳定的连接保持机制以及可靠的消息质量保证,使其在各种物联网场景中都能表现出色。开发者在设计和实现物联网系统时,应优先考虑采用MQTT协议,以充分发挥其在资源受限环境下的优势,提升系统的整体性能和可靠性。
3876 26
|
监控 安全 Java
Java 开发中基于 Spring Boot 3.2 框架集成 MQTT 5.0 协议实现消息推送与订阅功能的技术方案解析
本文介绍基于Spring Boot 3.2集成MQTT 5.0的消息推送与订阅技术方案,涵盖核心技术栈选型(Spring Boot、Eclipse Paho、HiveMQ)、项目搭建与配置、消息发布与订阅服务实现,以及在智能家居控制系统中的应用实例。同时,详细探讨了安全增强(TLS/SSL)、性能优化(异步处理与背压控制)、测试监控及生产环境部署方案,为构建高可用、高性能的消息通信系统提供全面指导。附资源下载链接:[https://pan.quark.cn/s/14fcf913bae6](https://pan.quark.cn/s/14fcf913bae6)。
2875 0
|
传感器 人工智能 物联网
健康监测设备的技术革命:AI+物联网如何让你随时掌握健康数据?
健康监测设备的技术革命:AI+物联网如何让你随时掌握健康数据?
1674 19
|
存储 安全 物联网
政府在推动物联网技术标准和规范的统一方面可以发挥哪些作用?
政府在推动物联网技术标准和规范的统一方面可以发挥哪些作用?
628 60
|
安全 物联网 物联网安全
制定统一的物联网技术标准和规范的难点有哪些?
制定统一的物联网技术标准和规范的难点有哪些?
793 58

相关产品

  • 物联网平台