HTTP和MQTT是物联网领域中两种流行协议。尽管如此,HTTP和MQTT代表了同一个难题的两个方面,企业需要相应地利用它们。
什么是HTTP?
超文本传输协议(HTTP)是万维网的基础协议。一个人的Web浏览器的内容通过HTTP请求。此请求转到云中的服务器,该服务器以请求的网页进行响应。
作为一种易于部署且直接的命令请求协议,HTTP在1990年代初问世后迅速普及。
什么是MQTT?
“需求是发明之母”这句话恰当地概括了消息队列遥测传输(MQTT)的历史。1999年,在IBM获得了一个大型石油和天然气项目后,它意识到需要一个轻量级的通信协议来 连接石油管道上的传感器和通信卫星。MQTT将重新定义每个级别上机器对机器通信的有效性。
主要区别是什么?
地球仪上的交换图标由二进制代码组成,箭头指向相反的方向,表示HTTP的命令请求操作和MQTT的发布订阅操作。
HTTP通常是一个瞬态接口,其中每个请求都是一个短暂的会话。MQTT会话是长期存在的。
另一个重要区别是HTTP在命令响应基础上运行。命令被发送到服务器并返回响应。端点、浏览器或小型设备必须每次都向服务器发起该事务。
但是,MQTT使用一个称为发布订阅的概念。消息可以在任意一端发起。它还利用代理或消息的聚合器和分发器,允许客户机设备与数千个端,(而不仅仅是一个端点通信。
各自的缺点和优点
MQTT将消息传递到另一层。但是,它比HTTP更复杂,HTTP很简单,并且使用易于阅读的ASCII字符。MQTT也更难使用,因为它是双向的,可以同时支持ASCII和二进制有效负载。
由于HTTP事务本质上是自动的,因此必须为每条消息提供安全上下文,从而产生大量开销。另一方面,MQTT使用代理和持久连接的概念。安全标准只需要用于第一个连接,从而立即提高性能。
而且,在MQTT和HTTP的性能控制测试中,MQTT传输相同数据量的速度是HTTP的80到100倍。使用HTTP,企业必须逐条消息为其数据计划支付额外费用。MQTT在这方面要便宜得多。此外,边缘设备的固件更新和配置更改通过MQTT变得更加简单。
物联网用例的HTTP与MQTT
对于云平台,物联网设备通常会通过MQTT进行通信,因为它是双向的。尽管如此,云的另一端仍需要HTTPS来让用户提取数据以进行仪表盘显示和分析。本质上,数据可视化后端的大部分交互都是通过HTTP进行的。然而,MQTT在前端表现得更好,因为事务性命令和原始数据是在前端输入和输出的。
想象一下带有摄像机的智能连接门铃,当有人进入视野时,该设备将激活并通过HTTP发起连接。然而,该视频将建立一个MQTT流来移动该数据,而不是通过HTTP消息单独发送信息。