Long Polling

Aktualisiert: 27. September 2023

Einführung

Long Polling ist eine Webentwicklungstechnik, die es einem Webserver ermöglicht, Daten an eine Clientanwendung zu übertragen, sobald neue Daten verfügbar sind. Das bedeutet, anstatt mit herkömmlichen HTTP-Anforderungen (bei denen der Client den Server um Informationen bittet und der Server reagiert), wartet der Server beim Long Polling, bis neue Daten zur Versendung an den Client bereitstehen.

Entstehung und Notwendigkeit

Long Polling entstand als Lösung für die Beschränkungen von kurzen Umfragen, bei denen der Client wiederholt den Server abfragt, um festzustellen, ob neue Daten verfügbar sind. Dies führt zu einem erhöhten Netzwerkverkehr und kann zu Serverüberlastungen führen. Mit Long Polling kann der Server den Client bei der Verfügbarkeit von neuen Daten informieren, wodurch diese Probleme minimiert werden.

Hauptanwendungen

Long Polling wird in verschiedenen Webanwendungen verwendet, darunter Messaging-Anwendungen, Echtzeit-Nachrichten-Feeds und Live-Ticker. Durch diese Technik können Daten quasi in Echtzeit übertragen werden, was in vielen modernen Webanwendungen unerlässlich ist.

Hauptbestandteile und Funktionsweise

Clientanforderung

Der Prozess beginnt mit einer Anforderung des Clients. Im Gegensatz zu normalen HTTP-Anforderungen, bei denen der Client nach Daten fragt und eine sofortige Antwort erhält, bleibt die Anforderung bei Long Polling offen, bis der Server Daten zum Senden hat.

Serverantwort

Wenn neue Daten zur Versendung bereitstehen, sendet der Server eine Antwort auf die offene Anforderung des Clients zurück. Diese Antwort enthält die neuen Daten. Dann schließt der Server die Anforderung.

Neue Anforderung

Nach Erhalt der Antwort sendet der Client sofort eine neue Anforderung aus. Dieser Prozess des kontinuierlichen Sendens und Empfangens von Anforderungen ermöglicht die quasi Echtzeit-Datenübertragung.

Timeout

Wenn der Server innerhalb eines bestimmten Zeitrahmens keine neuen Daten zum Senden hat, kann er die offene Anforderung schließen und eine “Timeout”-Antwort senden. Der Client sendet im Falle einer Timeout-Antwort einfach eine neue Anforderung.

Beispiel

Ein einfach zu verstehendes Beispiel für Long Polling ist eine Chat-Anwendung. Der Client (ein Benutzer in der Chat-App) sendet eine offene Anforderung an den Server. Wenn ein anderer Benutzer eine Nachricht sendet, sendet der Server diese als Antwort auf die offene Anforderung. Der Client empfängt die Nachricht und sendet sofort eine neue Anforderung. So aktualisiert sich das Chat-Fenster fast in Echtzeit.

FAQ

Ist Long Polling dasselbe wie Websockets?

Nein, obwohl beide Technologien eine schnelle Datenübertragung zwischen Server und Client ermöglichen, arbeiten sie auf unterschiedliche Weise. Long Polling verwendet HTTP-Anforderungen, während Websockets eine eigenständige TCP-basierte Protokoll verwenden.

Ist Long Polling effizient?

Es ist effizienter als herkömmliches Polling, da es den Netzwerkverkehr reduziert und Serverressourcen spart. Allerdings ist es weniger effizient als Technologien wie WebSockets, die eine bidirektionale Kommunikation ermöglichen.

Welche Nachteile hat Long Polling?

Zu den Nachteilen gehört, dass es komplexer ist als normales Polling und es kann zu Latenzproblemen kommen, vor allem wenn der Server stark ausgelastet ist.

Kann jeder Server Long Polling unterstützen?

Welcher Server Long Polling unterstützt, hängt von seiner Software ab. Die meisten modernen Webserver unterstützen Long Polling.

Funktioniert Long Polling mit allen Browsers?

Ja, Long Polling funktioniert mit allen modernen Browsern, da es HTTP-Anforderungen verwendet.

Was passiert, wenn beim Long Polling ein Verbindungsfehler auftritt?

Normalerweise würde der Client automatisch eine neue Anforderung senden.

Ist Long Polling immer die beste Wahl für Echtzeitanwendungen?

Nicht immer. Technologien wie Websockets oder Server Sent Events sind in einigen Fällen effizienter und besser einsetzbar.

Wie reagiert Long Polling auf hohe Lastsituationen?

In Hochlastsituationen kann Long Polling zu einer erhöhten Latenz führen. Eine gute Lastverteilung und eine skalierbare Serverinfrastruktur können dazu beitragen, dieses Problem zu mildern.

Was ist ein “Timeout” bei Long Polling?

Ein “Timeout” tritt auf, wenn der Server nach einem bestimmten Zeitrahmen keine Daten zum Senden hat. In diesem Fall sendet er eine “Timeout”-Antwort, und der Client sendet eine neue Anforderung.

Welche Art von Daten kann Long Polling übertragen?

Long Polling kann alle Arten von Daten übertragen, die über HTTP-Anforderungen übertragen werden können, einschließlich Text, HTML, JSON, XML usw.

Ähnliche Artikel

Autor