The most used protocols in IoT

Undoubtedly the two most used protocols in the IoT world are HTTP and MQTT, each with its characteristics, advantages, and disadvantages. Both protocols are available for use through libraries in all the languages used for the development of IoT devices.

In the following sections, I provide you with some tips to choose the best protocol between MQTT vs HTTP.


HTTP is the historical protocol used to transfer data on the World Wide Web and therefore it is natural that it is also used for IoT applications. Its mode of operation is of the type request/response – client/server.

IoT management platforms that use it have an HTTP-based application interface (API). This interface is called the RESTful API (REST for Representational State Transfer).

A RESTful interface uses the familiar HTTP methods: GET to get data, PUT to send data (object, file, or block), POST to create a resource, and DELETE to delete it.

HTTP in versions 1 and 2 uses the TCP transport protocol, while version 3 supports the use of UDP. In general, it is recommended to use TCP to guarantee the delivery of messages.

However, in very reliable and robust networks it can be an advantage to use UDP to establish shorter and faster communications. Choosing UDP has a positive impact not only on the use of the network but also on the energy consumption of the IoT nodes, especially those that are powered by batteries.

One of the benefits of using HTTP is its ability to send or receive large amounts of data efficiently. If the IoT node or gateway sends images, video streams, audio, or files, we recommend using HTTP.

To provide security, you can use HTTPS and TLS to encrypt the data transfer. 

Ad - Web Hosting from SiteGround - Crafted for easy site management. Click to learn more.


MQTT was born as a communication protocol between machines (M2M – machine to machine), so it has features designed exclusively for this type of application. Its mode of operation is through publication/subscription to a topic, in which you publish or read.

Their messages are short, so the data transmissions are also short, and this impacts the power consumption of the nodes, something crucial in battery-powered devices.

MQTT only allows communication through TCP and has three modes of operation in terms of message delivery (QoS – quality of service):

  • At most once: This is a best-effort policy, message delivery is not guaranteed.
  • At least once: Delivery is guaranteed, but the same message can be delivered more than once.
  • Exactly once: Each message is guaranteed to be received only once by the recipient.

Also, MQTT allows identification by user and password or token and encryption using SSL/TLS.

Finally, you can run MQTT over WebSockets, which can be an interesting option on many systems.

Conclusions on MQTT vs HTTP

The choice of one of these two protocols for the communication of the devices will depend on several factors

  • The type of information to send. For small messages, MQTT is better, while for data blocks HTTP is better.
  • I would recommend MQTT for battery-powered nodes as it improves power usage.
  • For communication between devices, you may want to use MQTT.
  • HTTP is useful in gateways to transfer all the information at once, instead of sending many messages.
  • MQTT can adapt to unreliable networks by configuring QoS quality of service.

If you liked this article and found it useful, I would appreciate it if you commented or shared it on your networks.

In case you need help with your IoT project, don’t hesitate to send me your request through this form.

Categories: Sin categoría


Leave a Reply

Avatar placeholder

Your email address will not be published. Required fields are marked *