记录http与mqtt的区别

HTTP是最流行和最广泛使用的协议。但在过去几年中,MQTT迅速获得了牵引力。当我们谈论物联网开发时,开发人员必须在它们之间做出选择。

设计和消息传递

MQTT以数据为中心,而HTTP是以文档为中心的。HTTP是用于客户端 -- 服务器计算的请求 -- 响应协议,并不总是针对移动设备进行优化。MQTT在这些术语中的主要优点是轻量级(MQTT将数据作为字节数组传输)和发布/订阅模型,这使其非常适合资源受限的设备并有助于节省电池。

此外,发布/订阅模型为客户提供了彼此独立的存在,增强了整个系统的可靠性。当一个客户端出现故障时,整个系统可以继续正常工作。

速度和交付

根据3G网络的测量结果,MQTT的吞吐量比HTTP快93倍。

此外,与HTTP相比,MQTT协议确保了高传输保证。有3个级别的服务质量:

-- 最多一次:保证尽力交付。

-- 至少一次:保证消息至少传送一次。但是消息也可以不止一次传递。

-- 恰好一次:保证每个消息只被对方接收一次

MQTT还为用户提供Last will&Testament和Retained消息的选项。第一个意味着在客户端意外断开连接的情况下,所有订阅的客户端都将从代理获得消息。保留消息意味着新订阅的客户端将立即获得状态更新。

HTTP协议没有这些功能。

复杂性和消息大小

MQTT具有相当短的规范。只有CONNECT,PUBLISH,SUBSCRIBE,UNSUBSCRIBE和DISCONNECT类型对开发人员很重要。而HTTP规范要长得多。

MQTT具有非常短的消息头,并且最小的包消息大小为2个字节。通过HTTP协议使用文本消息格式允许它组成冗长的标题和消息。它有助于消除麻烦,因为它可以被人类阅读,但同时它对于资源受限的设备是不必要的。

结论

MQTT协议易于使用。对于未来的解决方案,响应时间,吞吐量,更低的电池和带宽使用率是第一位的,这一点至关重要。在间歇性连接的情况下,它也是完美的。

HTTP是值得和可扩展的。但是当它被称为IoT开发时,MQTT更适合。

总结分析:

协议 优点 缺点
HTTP 应用广泛,开发成本低 1,服务端无法主动推送数据给client; 2,采用key-value格式,占用存储和计算资源高;
MQTT 小型传输,资源开销小 发布订阅模式,提供1对多消息发布,解除应用程序耦合

mqtt是为大量计算能力有限且工作在低带宽、不可靠网络的远程传感器和控制设备通讯而设计的一种协议。

HTTP是适合使用在性能好一些的终端上,相对以上一些比较重,对设备要求相对高一些。不适合M2M的场景。

mqtt是以数据为中心,数据量一般比较小;

http是以文本为中心,数据量一般比较大。

【整整200集】超超超详细的Python接口自动化测试进阶教程合集,真实模拟企业项目实战

相关推荐
张忠琳2 小时前
【SR-IOV cni】(Part 4) SR-IOV Network Device Plugin 3.11.0 — 超深度架构分析
网络·云原生·kubernetes·cni·sriov
汤愈韬2 小时前
IPSec-NAT穿越原理和配置
网络·网络协议·安全·网络安全·security
疯狂打码的少年3 小时前
输入输出控制方式:DMA(直接存储器存取)
网络·笔记
知无不研3 小时前
对套接字的深入理解
linux·服务器·网络·c++·socket·网络套接字
xyzzklk3 小时前
解决Salesforce无法向外发送邮件
android·java·开发语言·网络·crm·salesforce·客户关系管理
辣椒思密达5 小时前
Python HTTP请求中的重试与超时控制:提升稳定性的实用方法
开发语言·python·http
珠***格5 小时前
实操落地|防逆流装置的安装规范、调试标准与故障处置
网络·数据库·人工智能·分布式·能源·边缘计算
国科安芯5 小时前
国科安芯推出商业航天级抗辐照全双工 RS485/422 收发器 ASC491S2Y
网络·分布式·单片机·架构·安全性测试
浮芷.7 小时前
鸿蒙PC端 TTS 网络连接错误问题详解:在线/离线模式切换与网络状态管理
网络·华为·开源·harmonyos·鸿蒙·鸿蒙系统
雪度娃娃7 小时前
ASIO异步通信——多线程模型
开发语言·网络·c++·php