Server-Sent Events (SSE)

Server-Sent Events (SSE) ermöglichen es einem Server, Aktualisierungen an einen Client zu senden, ohne dass dieser sie abfragen muss. Der Client sendet eine GET-Anfrage mit dem Parameter `Accept: text/event-stream`. Der Server speichert die Antwort und schreibt die Ereignisse, sobald sie auftreten – jedes als wenige Zeilen Text mit optionalen Feldern für ID und Ereignis. Browser stellen diese Funktionalität über die EventSource-API bereit.

So funktioniert es

Jedes Ereignis besteht aus Daten: Zeilen, gefolgt von einer Leerzeile. Bei Verbindungsabbruch stellt EventSource die Verbindung automatisch wieder her und sendet die ID des zuletzt empfangenen Ereignisses im Header „Last-Event-ID“, sodass der Server die Übertragung nahtlos fortsetzen kann. Server senden regelmäßig Kommentarzeilen als Heartbeats, um zu verhindern, dass Proxys inaktive Verbindungen schließen.

Das Missverständnis

WebSockets sind nicht immer die bessere Wahl. SSE ist reines HTTP – es durchläuft Proxys und Load Balancer, die WebSocket-Upgrades blockieren, benötigt keinen speziellen Server und stellt die Verbindung dank integrierter Wiederaufnahmefunktion automatisch wieder her. Für Server-zu-Client-Updates wie Benachrichtigungen, Fortschrittsanzeigen und Feeds ist es in der Regel das einfachere Werkzeug.

Probieren Sie es hier aus

GET /streams/v1/events antwortet als JSON oder, mit Accept: text/event-stream, als Ereignisstrom; senden Sie Last-Event-ID, um nach einem bestimmten Ereignis fortzufahren, und POST /streams/v1/events um ein Ereignis zu veröffentlichen.

Quellen

Weitere Begriffe

Diese Seite auf Englisch lesen

Alle Glossarbegriffe · Testtechniken · Alle 39 Mock-REST-APIs

Zuletzt aktualisiert