从物联网需求到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 可以看到现在返回的过程返回的内容就是刚刚写的这个内容。

相关实践学习
钉钉群中如何接收IoT温控器数据告警通知
本实验主要介绍如何将温控器设备以MQTT协议接入IoT物联网平台,通过云产品流转到函数计算FC,调用钉钉群机器人API,实时推送温湿度消息到钉钉群。
阿里云AIoT物联网开发实战
本课程将由物联网专家带你熟悉阿里云AIoT物联网领域全套云产品,7天轻松搭建基于Arduino的端到端物联网场景应用。 开始学习前,请先开通下方两个云产品,让学习更流畅: IoT物联网平台:https://iot.console.aliyun.com/ LinkWAN物联网络管理平台:https://linkwan.console.aliyun.com/service-open
相关文章
|
22天前
|
数据采集 传感器 监控
多协议网关BL110钡铼6路RS485转MQTT协议云网关
BL110钡铼6路RS485转MQTT协议云网关是一款高性能、易配置的工业级设备,适用于各种需要远程监控和数据采集的物联网应用场景。通过将传统RS485设备的数据转换为MQTT协议并上传至云平台,实现了设备的远程管理和智能控制,极大地提升了系统的管理效率和响应速度。
26 2
|
1月前
|
传感器 消息中间件 物联网
常用的物联网协议
常用的物联网协议包括:MQTT(消息队列遥测传输)、CoAP(受限应用协议)、HTTP/HTTPS、LWM2M(轻量级机器对机器)和Zigbee等。这些协议在不同的应用场景中发挥着重要作用,如数据传输、设备管理等。
|
2月前
|
网络协议 物联网 网络性能优化
物联网协议比较 MQTT CoAP RESTful/HTTP XMPP
【10月更文挑战第18天】本文介绍了物联网领域中四种主要的通信协议:MQTT、CoAP、RESTful/HTTP和XMPP,分别从其特点、应用场景及优缺点进行了详细对比,并提供了简单的示例代码。适合开发者根据具体需求选择合适的协议。
72 5
|
1月前
|
消息中间件 监控 物联网
物联网8大协议介绍及对比
根据具体的应用需求,选择合适的协议可以大幅提升系统的性能和可靠性。希望本文能为您在物联网协议的选择和应用中提供有价值的参考。
273 0
|
3月前
|
消息中间件 监控 物联网
MQTT协议对接及RabbitMQ的使用记录
通过合理对接MQTT协议并利用RabbitMQ的强大功能,可以构建一个高效、可靠的消息通信系统。无论是物联网设备间的通信还是微服务架构下的服务间消息传递,MQTT和RabbitMQ的组合都提供了一个强有力的解决方案。在实际应用中,应根据具体需求和环境进行适当的配置和优化,以发挥出这两个技术的最大效能。
213 0
|
3月前
|
网络协议 物联网 网络性能优化
物联网江湖风云变幻!MQTT CoAP RESTful/HTTP XMPP四大门派谁主沉浮?
【9月更文挑战第3天】物联网(IoT)的兴起催生了多种通信协议,如MQTT、CoAP、RESTful/HTTP和XMPP,各自适用于不同场景。本文将对比这些协议的特点、优缺点,并提供示例代码。MQTT轻量级且支持QoS,适合大规模部署;CoAP基于UDP,适用于低功耗网络;RESTful/HTTP易于集成但不适合资源受限设备;XMPP支持双向通信,适合复杂交互应用。通过本文,开发者可更好地选择合适的物联网通信协议。
46 2
|
2月前
|
消息中间件 JSON Java
开发者如何使用轻量消息队列MNS
【10月更文挑战第19天】开发者如何使用轻量消息队列MNS
101 7
|
2月前
|
消息中间件 安全 Java
云消息队列RabbitMQ实践解决方案评测
一文带你详细了解云消息队列RabbitMQ实践的解决方案优与劣
96 8
|
1月前
|
消息中间件 存储 Kafka
MQ 消息队列核心原理,12 条最全面总结!
本文总结了消息队列的12个核心原理,涵盖消息顺序性、ACK机制、持久化及高可用性等内容。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
|
2月前
|
消息中间件
解决方案 | 云消息队列RabbitMQ实践获奖名单公布!
云消息队列RabbitMQ实践获奖名单公布!

热门文章

最新文章

相关产品

  • 物联网平台