首页 > 其他分享 >HTTP协议和MQTT协议对比谁更好

HTTP协议和MQTT协议对比谁更好

时间:2023-04-12 18:08:49浏览次数:27  
标签:协议 一次 HTTP TCP MQTT 连接

HTTP协议是Web联网的基础,也是应用最为广泛和流行的协议,HTTP连接最显著的特点是客户端发送的每次请求都需要服务器回送响应,在请求结束后,会主动释放连接。从建立连接到关闭连接的过程称为“一次连接”。

MQTT是一种基于发布/订阅模式的“轻量级”通讯协议,该协议构建于TCP/IP协议上,由IBM在1999年发布。MQTT最大优点在于,用极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务。

作为一种低开销、低带宽占用的即时通讯协议,使其在物联网、小型设备、移动应用等方面有较广泛的应用。

根据3G网络的测量结果,MQTT的吞吐量比HTTP快93倍。此外,与HTTP相比,MQTT协议确保了高传输。

MQTT协议有3个级别的服务质量:

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

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

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

因为HTTP协议的首部(header)比较大,而且每次发送数据都要发送一个数据包来连接/断开TCP,因此发送的数据越多,数据总通信量也就越大;

而MQTT 的首部比较小,还能在维持TCP连接的同时,进行下一次数据的收发,所以比起HTTP,它更能抑制数据总通信量。

所以综上看来,你认为HTTP协议和MQTT协议,那个协议会更好一些?

标签:协议,一次,HTTP,TCP,MQTT,连接
From: https://blog.51cto.com/ebyte/6185989

相关文章

  • java发送Http请求
    使用java11添加的HttpClient新API发送Http(Https)请求HTTP客户端是在Java11中添加的。它可以用于通过网络请求HTTP资源。它支持HTTP/1.1和HTTP/2(同步和异步编程模型),将请求和响应主体作为反应流处理,并遵循熟悉的构建器模式。参考文章:https://blog.csdn.net/allway2/articl......
  • SNMP(Simple Network Management Protocol)——简单网络管理协议
    SNMP(SimpleNetworkManagementProtocol)——简单网络管理协议 目录一、SNMP简介1.背景2.SNMP管理的网络架构二、SNMPMIB1.SNMPMIB简介2.MIB分类(1)公有MIB(2)私有MIB3.被管理设备的基本属性(1)对象表示符(2)对象的状态(3)对象的访问权限(4)对象的数据类型三、SNMPv1工作......
  • STP协议原理
    STP技术背景:在网络中,为了防止单点故障的出现,会给链路和设备都做冗余   冗余带来环路,环路会导致:-广播风暴-MAC地址表紊乱【不稳定的MAC地址表/MAC地址表抖动】-交换机收到重复数据帧 广播风暴  如何解决环路带来的问题?STP:既要有冗余,又要去除环路带......
  • C#请求访问HTTP+JSON数据的解析
    一、前言最近工作客户需要一个HTTP的Mes需求,所以自己去学习了C#请求HTTP的方法以及JSON数据的解析方法,总结出了点经验,以便后续自己找起来方便一点,故在此写一篇文章。二、准备工作下面我用一个聚合数据提供的天气预报API接口来阐述请求HTTP和JSON数据解析的功能;先看API文档这么访......
  • C#中HttpWebRequest的用法详解
    1、HttpWebRequest和HttpWebResponse类是用于发送和接收HTTP数据的最好选择。2、命名空间:System.Net3、HttpWebRequest对象不是利用new关键字创建的(通过构造函数)。 而是利用Create()方法创建的。4、你可能预计需要显示地调用一个“Send”方法,实际上不需要。5、调用HttpWebRe......
  • 在.NET Core使用 HttpClient 的正确方式
    前言HttpClient是.NETFramework、.NETCore或.NET5以上版本中的一个类,用于向WebAPI发送HTTP请求并接收响应。它提供了一些简单易用的方法,如GET、POST、PUT和DELETE,可以很容易地构造和发送HTTP请求,并处理响应数据。它是我们比较常用的官方HTTP请求组件,那么你们都......
  • TCP协议
    TCP协议的特点:TCP是面向连接(虚连接),是一种点对点的连接。每一条TCP只能有两个端点。TCP连接是可靠的交付,无差错、不丢失、不重复、按顺序到达。TCP提供全双工通信(双向通信)。因此发送方和接受方都会有发送缓存和接收缓存。发送缓存:准备发送的数据&已发送但尚未确认的数据。接......
  • HttpHelper
    publicclassHttpHelpe{publicstaticasyncTask<T>GetAsync<T>(stringurl,stringpostData=null,stringcontentType=null,inttimeOut=30,Dictionary<string,string>headers=null){returnawaitRequestAsync<T......
  • testng+HttpClient项目实战(一)
    参考文档:https://www.cnblogs.com/yingyingja/p/9973960.htmlhttps://www.cnblogs.com/yingyingja/p/9974181.htmlhttps://www.cnblogs.com/yingyingja/p/9974183.htmlhttps://www.cnblogs.com/yingyingja/p/9974186.htmlhttps://www.cnblogs.com/yingyingja/p/9974189.html......
  • 嵌入式软件架构设计协议定义
    在嵌入式软件架构设计中,协议定义是非常重要的。协议定义规定了通信双方之间的消息格式以及通信方式,保证了系统之间的可靠性、安全性和互操作性。以下是一些常见的嵌入式软件架构设计协议定义:UART协议:UART是一种简单的串行通信协议,适用于低速、短距离的通信。UART不需要外部时钟信号......