TL;DR
Nutzen Sie MQTT für IoT-Geräte mit begrenzter Batterielebensdauer, unzuverlässigen Netzwerken oder Pub-Sub-Nachrichtenmustern. Nutzen Sie HTTP für Standard-Web-/Mobile-APIs. MQTT verwendet 2-Byte-Header im Vergleich zu HTTPs über 100 Bytes, was es ideal für eingeschränkte Geräte macht. Die moderne PetstoreAPI implementiert MQTT für Haustier-Tracking-Halsbänder und intelligente Futterautomaten.
Einleitung
Ihr Haustier-Tracking-Halsband muss alle 5 Minuten Standortaktualisierungen senden. Es läuft mit einer Knopfzellenbatterie, die 6 Monate halten sollte. Bei Verwendung von HTTP ist die Batterie nach 2 Wochen leer. Bei Verwendung von MQTT hält sie die vollen 6 Monate.
HTTP ist Standard für APIs, wurde aber für Webbrowser und nicht für IoT-Geräte entwickelt. MQTT (Message Queuing Telemetry Transport) wurde für eingeschränkte Geräte mit begrenzter Bandbreite und unzuverlässigen Netzwerken konzipiert.
Die moderne PetstoreAPI verwendet HTTP für Web- und mobile Apps, aber MQTT für IoT-Geräte: Haustier-Tracking-Halsbänder, intelligente Futterautomaten und Gesundheitsmonitore.
Button
In diesem Leitfaden erfahren Sie, wann MQTT HTTP überlegen ist, sehen praktische Beispiele aus der modernen PetstoreAPI und entdecken, wie Sie das richtige Protokoll für Ihren Anwendungsfall auswählen.
Was ist MQTT?
MQTT ist ein leichtgewichtiges Pub-Sub-Nachrichtenprotokoll, das für IoT entwickelt wurde.
Wie MQTT funktioniert
Geräte veröffentlichen Nachrichten zu Themen (Topics). Andere Geräte abonnieren Themen:
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}
Der MQTT Broker sitzt dazwischen und leitet Nachrichten von Verlegern an Abonnenten weiter.
Wichtige MQTT-Funktionen
- 1. Kleine Header – MQTT: 2 Bytes, HTTP: 100–500 Bytes
- 2. Persistente Verbindungen – MQTT hält Verbindungen offen
- 3. Quality of Service (QoS) – QoS 0/1/2 für Zustellgarantien
- 4. Letzter Wille (Last Will) – Nachricht, die gesendet wird, wenn das Gerät unerwartet die Verbindung trennt
- 5. Gespeicherte Nachrichten (Retained messages) – Broker speichert die letzte Nachricht für neue Abonnenten
MQTT vs. HTTP Vergleich
| Funktion | MQTT | HTTP |
|---|---|---|
| Headergröße | 2 Bytes | 100–500 Bytes |
| Muster | Pub-Sub | Anfrage-Antwort |
| Verbindung | Persistent | Pro-Anfrage |
| Bandbreite | Sehr niedrig | Höher |
| Batterieauswirkung | Minimal | Deutlich |
| Browser-Unterstützung | Via WebSocket | Nativ |
Bandbreitenbeispiel
1000 Standortaktualisierungen pro Tag:
- HTTP: 420 KB täglich, 12,6 MB monatlich
- MQTT: 52 KB täglich, 1,56 MB monatlich
MQTT verbraucht 8x weniger Bandbreite.
Wann MQTT gewinnt
1. IoT-Geräte mit begrenzter Batterielebensdauer
Haustier-Tracking-Halsband:
- MQTT: 6 Monate Batterielaufzeit
- HTTP: 2 Wochen Batterielaufzeit
Warum: Persistente Verbindung, kleine Header, weniger Funkzeit.
2. Unzuverlässige Netzwerke
Mobilfunk-IoT-Geräte mit lückenhafter Abdeckung:
- QoS für garantierte Zustellung
- Automatische Wiederverbindung
- Sitzungspersistenz
3. Viele-zu-Viele-Kommunikation
Szenario intelligenter Futterautomat:
Feeder 1 → pets/019b4132/feeding
Feeder 2 → pets/019b4127/feeding
App 1 → subscribes to pets/+/feeding (all pets)
App 2 → subscribes to pets/019b4132/feeding (one pet)
4. Echtzeit-Sensordaten
Haustier-Gesundheitsmonitor sendet jede Sekunde Aktualisierungen:
- Persistente Verbindung (kein Overhead)
- Minimale Latenz
- Effizient für hochfrequente Aktualisierungen
Wann HTTP gewinnt
1. Standard-Web-/Mobile-Apps
HTTP ist universell:
- Jede Sprache hat HTTP-Bibliotheken
- Browser unterstützen es nativ
- Proxys und Firewalls erlauben es
2. Anfrage-Antwort-Muster
Abrufen von Haustierdetails:
GET /pets/019b4132
200 OK
{"name":"Fluffy","species":"CAT"}
HTTP ist einfacher für Anfrage-Antwort-Muster.
3. Caching-Anforderungen
HTTP-Caching funktioniert sofort:
- Browser-Caching
- CDN-Caching
- Proxy-Caching
MQTT hat kein Caching.
4. RESTful APIs
HTTP-Statuscodes, -Methoden und -Semantik:
- 200 OK, 404 Nicht gefunden, 201 Erstellt
- GET, POST, PUT, DELETE
- Standard-Fehlerbehandlung
Wie die moderne PetstoreAPI MQTT nutzt
Die moderne PetstoreAPI implementiert MQTT für IoT-Geräte.
Haustier-Tracking-Halsbänder
Halsband veröffentlicht Standort:
Topic: pets/019b4132/location
QoS: 1 (at least once)
Payload: {
"lat": 37.7749,
"lng": -122.4194,
"battery": 85,
"timestamp": "2026-03-13T10:30:00Z"
}
Mobile App abonniert:
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);
});
Intelligente Futterautomaten
Futterautomat abonniert Zeitplan:
Topic: pets/019b4132/feeding-schedule
Retained: true
Payload: {
"times": ["08:00", "18:00"],
"amount": 100
}
Futterautomat veröffentlicht Fütterungsereignisse:
Topic: pets/019b4132/feeding-events
Payload: {
"timestamp": "2026-03-13T08:00:15Z",
"amount": 100,
"dispensed": true
}
Gesundheitsmonitore
Monitor veröffentlicht Vitaldaten:
Topic: pets/019b4132/health
QoS: 0 (fire and forget, high frequency)
Payload: {
"heartRate": 120,
"temperature": 38.5,
"activity": "resting"
}
MQTT mit Apidog testen
Apidog unterstützt MQTT-Tests neben HTTP und anderen Protokollen.
MQTT Pub-Sub testen
- Verbindung zum MQTT-Broker herstellen
- Themen (Topics) abonnieren
- Testnachrichten veröffentlichen
- Nachrichtenformat validieren
- QoS-Level testen
Netzwerkfehler simulieren
- Wiederverbindungslogik testen
- QoS 1/2 Zustellung überprüfen
- Last Will Nachrichten prüfen
- Sitzungspersistenz validieren
Mit HTTP vergleichen
Testen Sie dieselbe Funktionalität mit beiden Protokollen:
- Bandbreitennutzung messen
- Latenz vergleichen
- Datenkonsistenz überprüfen
Fazit
MQTT und HTTP dienen unterschiedlichen Zwecken. Nutzen Sie MQTT für IoT-Geräte mit begrenzten Ressourcen. Nutzen Sie HTTP für Standard-Web-/Mobile-APIs.
Die moderne PetstoreAPI zeigt, wie man beides verwendet: HTTP für benutzerorientierte APIs, MQTT für IoT-Geräte. Das richtige Protokoll hängt von Ihren Einschränkungen ab, nicht davon, welches „besser“ ist.
Testen Sie beide Protokolle mit Apidog, um die beste Lösung für Ihren Anwendungsfall zu finden.
Button
FAQ
Kann MQTT über HTTP funktionieren?
MQTT kann über WebSocket laufen, welches wiederum über HTTP funktioniert. Dies hilft bei der Firewall-Durchquerung, verliert jedoch einige der Effizienzvorteile von MQTT.
Was sind MQTT QoS-Level?
- QoS 0: Höchstens einmal (keine Bestätigung)
- QoS 1: Mindestens einmal (bestätigt, kann Duplikate enthalten)
- QoS 2: Genau einmal (garantiert, keine Duplikate)
Ist MQTT sicher?
Ja, MQTT unterstützt TLS-Verschlüsselung (MQTTS) und Benutzername/Passwort-Authentifizierung. Die moderne PetstoreAPI verwendet MQTTS für alle IoT-Geräte.
Können Browser MQTT verwenden?
Browser können MQTT über WebSocket verwenden. Bibliotheken wie MQTT.js unterstützen Browser-Umgebungen.
Wie vergleicht sich MQTT mit WebSocket?
MQTT ist ein Protokoll, das über WebSocket laufen kann. WebSocket ist eine Transportschicht. MQTT fügt Pub-Sub, QoS und IoT-spezifische Funktionen auf WebSocket hinzu.
