Quand utiliser MQTT au lieu de HTTP pour les API ?

Ashley Innocent

Ashley Innocent

13 March 2026

Quand utiliser MQTT au lieu de HTTP pour les API ?

Apidog pour les entreprises

Déploiement sur site

SSO & RBAC

Conforme SOC 2

Explorer Apidog Enterprise

En résumé

Utilisez MQTT pour les appareils IoT à batterie limitée, les réseaux peu fiables ou les modèles de messagerie pub-sub. Utilisez HTTP pour les API web/mobiles standard. MQTT utilise des en-têtes de 2 octets contre plus de 100 octets pour HTTP, ce qui le rend idéal pour les appareils contraints. Modern PetstoreAPI implémente MQTT pour les colliers de suivi d'animaux et les mangeoires intelligentes.

Introduction

Votre collier de suivi pour animaux de compagnie doit envoyer des mises à jour de localisation toutes les 5 minutes. Il fonctionne avec une pile bouton qui devrait durer 6 mois. En utilisant HTTP, la pile meurt en 2 semaines. En utilisant MQTT, elle dure les 6 mois complets.

HTTP est standard pour les API, mais il est conçu pour les navigateurs web, pas pour les appareils IoT. MQTT (Message Queuing Telemetry Transport) a été conçu pour les appareils contraints avec une bande passante limitée et des réseaux peu fiables.

Modern PetstoreAPI utilise HTTP pour les applications web et mobiles, mais MQTT pour les appareils IoT : colliers de suivi d'animaux, mangeoires intelligentes et moniteurs de santé.

💡
Si vous développez ou testez des API IoT, Apidog prend en charge les tests MQTT en parallèle de HTTP. Vous pouvez tester les modèles pub-sub, valider les formats de message et simuler des pannes de réseau.
bouton

Dans ce guide, vous apprendrez quand MQTT l'emporte sur HTTP, verrez des exemples réels de Modern PetstoreAPI et découvrirez comment choisir le bon protocole pour votre cas d'utilisation.

Qu'est-ce que MQTT ?

MQTT est un protocole de messagerie pub-sub léger conçu pour l'IoT.

Comment fonctionne MQTT

Les appareils publient des messages sur des sujets (topics). D'autres appareils s'abonnent à ces sujets :

Publisher (Pet Collar):
  Topic: pets/019b4132/location
  Payload: {"lat":37.7749,"lng":-122.4194,"battery":85}

Subscriber (Mobile App):
  Subscribe to: pets/019b4132/location
  Receives: {"lat":37.7749,"lng":-122.4194,"battery":85}

Le Broker MQTT se situe au milieu, acheminant les messages des éditeurs aux abonnés.

Fonctionnalités clés de MQTT

1. Petits en-têtes - MQTT : 2 octets, HTTP : 100-500 octets

2. Connexions persistantes - MQTT maintient les connexions ouvertes

3. Qualité de service (QoS) - QoS 0/1/2 pour les garanties de livraison

4. Dernier Testament (Last Will) - Message envoyé si l'appareil se déconnecte de manière inattendue

5. Messages retenus - Le Broker stocke le dernier message pour les nouveaux abonnés

Comparaison MQTT vs HTTP

Caractéristique MQTT HTTP
Taille de l'en-tête 2 octets 100-500 octets
Modèle Pub-Sub Requête-Réponse
Connexion Persistante Par requête
Bande passante Très faible Plus élevée
Impact sur la batterie Minimal Important
Support Navigateur Via WebSocket Natif

Exemple de bande passante

1000 mises à jour de localisation par jour :

MQTT utilise 8 fois moins de bande passante.

Quand MQTT l'emporte

1. Appareils IoT avec batterie limitée

Collier de suivi pour animaux :

Pourquoi : Connexion persistante, petits en-têtes, moins de temps radio.

2. Réseaux peu fiables

Appareils IoT cellulaires avec couverture inégale :

3. Communication de plusieurs à plusieurs

Scénario de mangeoire intelligente pour animaux :

Feeder 1 → pets/019b4132/feeding
Feeder 2 → pets/019b4127/feeding
App 1 → s'abonne à pets/+/feeding (tous les animaux)
App 2 → s'abonne à pets/019b4132/feeding (un animal)

4. Données de capteurs en temps réel

Moniteur de santé pour animaux envoyant des mises à jour chaque seconde :

Quand HTTP l'emporte

1. Applications web/mobiles standard

HTTP est universel :

2. Modèles Requête-Réponse

Obtention des détails de l'animal :

GET /pets/019b4132
200 OK
{"name":"Fluffy","species":"CAT"}

HTTP est plus simple pour les requêtes-réponses.

3. Exigences de mise en cache

La mise en cache HTTP fonctionne nativement :

MQTT n'a pas de mise en cache.

4. API RESTful

Codes de statut HTTP, méthodes et sémantique :

Comment Modern PetstoreAPI utilise MQTT

Modern PetstoreAPI implémente MQTT pour les appareils IoT.

Colliers de suivi pour animaux

Le collier publie la localisation :

Topic: pets/019b4132/location
QoS: 1 (at least once)
Payload: {
  "lat": 37.7749,
  "lng": -122.4194,
  "battery": 85,
  "timestamp": "2026-03-13T10:30:00Z"
}

L'application mobile s'abonne :

const mqtt = require('mqtt');
const client = mqtt.connect('mqtts://mqtt.petstoreapi.com');

client.subscribe('pets/019b4132/location');

client.on('message', (topic, message) => {
  const location = JSON.parse(message);
  updateMap(location.lat, location.lng);
});

Mangeoires intelligentes

La mangeoire s'abonne au programme :

Topic: pets/019b4132/feeding-schedule
Retained: true
Payload: {
  "times": ["08:00", "18:00"],
  "amount": 100
}

La mangeoire publie les événements d'alimentation :

Topic: pets/019b4132/feeding-events
Payload: {
  "timestamp": "2026-03-13T08:00:15Z",
  "amount": 100,
  "dispensed": true
}

Moniteurs de santé

Le moniteur publie les signes vitaux :

Topic: pets/019b4132/health
QoS: 0 (fire and forget, high frequency)
Payload: {
  "heartRate": 120,
  "temperature": 38.5,
  "activity": "resting"
}

Tester MQTT avec Apidog

Apidog prend en charge les tests MQTT en parallèle de HTTP et d'autres protocoles.

Tester MQTT Pub-Sub

  1. Se connecter au broker MQTT
  2. S'abonner aux sujets
  3. Publier des messages de test
  4. Valider le format des messages
  5. Tester les niveaux de QoS

Simuler des pannes de réseau

Comparer avec HTTP

Tester la même fonctionnalité avec les deux protocoles :

Conclusion

MQTT et HTTP répondent à des objectifs différents. Utilisez MQTT pour les appareils IoT avec des ressources limitées. Utilisez HTTP pour les API web/mobiles standard.

Modern PetstoreAPI montre comment utiliser les deux : HTTP pour les API destinées aux utilisateurs, MQTT pour les appareils IoT. Le bon protocole dépend de vos contraintes, et non de celui qui est le "meilleur".

Testez les deux protocoles avec Apidog pour trouver la meilleure solution pour votre cas d'utilisation.

bouton

FAQ

MQTT peut-il fonctionner sur HTTP ?

MQTT peut fonctionner sur WebSocket, qui lui-même fonctionne sur HTTP. Cela facilite le contournement des pare-feu mais fait perdre certains avantages d'efficacité de MQTT.

Quels sont les niveaux de QoS MQTT ?

MQTT est-il sécurisé ?

Oui, MQTT prend en charge le chiffrement TLS (MQTTS) et l'authentification par nom d'utilisateur/mot de passe. Modern PetstoreAPI utilise MQTTS pour tous les appareils IoT.

Les navigateurs peuvent-ils utiliser MQTT ?

Les navigateurs peuvent utiliser MQTT sur WebSocket. Des bibliothèques comme MQTT.js prennent en charge les environnements de navigateur.

Comment MQTT se compare-t-il à WebSocket ?

MQTT est un protocole qui peut fonctionner sur WebSocket. WebSocket est une couche de transport. MQTT ajoute des fonctionnalités pub-sub, QoS et spécifiques à l'IoT par-dessus WebSocket.

Pratiquez le Design-first d'API dans Apidog

Découvrez une manière plus simple de créer et utiliser des API