Was sind Webhooks und wozu braucht man diese?

Icon For Clock 4 Min. Lesezeit

In diesem Artikel lernen Sie, was ein Webhook ist, aber auch was das Konzept und die Begründung der Nutzung dahinter ist. Damit Sie die Hintergründe besser verstehen können, fangen wir am besten Vorne an, beim Polling.

Einordnung zum Thema (Audio 🎧)

Was ist Polling?

Stellen Sie sich Ihr E-Mail Postfach vor. Sie erhalten beispielsweise durchschnittlich alle 20 Minuten eine neue Nachricht. Also schauen Sie, je nach Zeit, alle 10 Minuten bis alle paar Stunden nach neuen E-Mails. Es kann also teilweise etwas dauern, bis Sie reagieren können. Vor allem um wichtige E-Mails nicht zu verpassen, schauen Sie zu bestimmten Zeitpunkten vielleicht sogar alle paar Minuten nach. Genau dieses “Abholen von neuen Nachrichten” oder generell gesagt, das Abfragen von Events oder anderen Änderungen ist Polling.

Wenn es sich nicht mehr um E-Mails handelt, sondern vielleicht um Sofortnachrichten, wie beispielsweise in Microsoft Teams oder WhatsApp, können Sie sich sicher vorstellen, dass die Prüfung auf neue Nachrichten eher sekündlich geschehen muss, um wahres “instant messaging” zu erhalten.

Was sind die Nachteile von Polling?

Zwei große Nachteile des Pollings sind die große Bandbreitennutzung und der erhöhte Stromverbrauch während es keine Änderungen gibt. Das ist vor allem ein Problem für Mobilgeräte, welche dadurch Datenvolumen verschwenden und besonders schnell den Akku leeren. Auch ist die Belastung für Server enorm aufgrund der vielen Abfragen.
Zur Verdeutlichung eine kleine Rechnung:
35 Nutzer * 1 Abfrage alle 3 Sekunden ergibt bereits 1.008.000 Abfragen pro Tag. Prozesse, die also auf Polling basieren, sind nur sehr schwer zu skalieren. (Was bedeutet “es ist schwer zu skalieren”? Lesen Sie unseren Blog Post über das Thema Skalierbarkeit, um mehr darüber zu erfahren.)

Was sind trotzdem Gründe Polling zu nutzen?

Nicht in jeder Situation gibt es bidirektionale Verbindungen. Wenn Sie eine Webseite besuchen, erhalten Sie vom Webserver den Inhalt. Auf den meisten Webseiten sind im Inhalt noch weitere Inhalte, wie Bilder, Videos und Weitere verlinkt. Ihr Browser fragt auch diese automatisch beim Webserver an und erhält daraufhin die angefragten Inhalte.

Interaktion zwischen Browser und Webserver beim Seitenaufruf
Interaktion zwischen Browser und Webserver beim Seitenaufruf

Alle Interaktionen zwischen Browser und Webserver enden immer mit einer finalen Antwort des Webservers und können nicht von diesem initiiert werden. Der Browser muss also regelmäßig nach Änderungen fragen, es muss also Polling betrieben werden.
Es wäre ein drastisches Sicherheitsrisiko, wenn dauerhaft alle Server im gesamten Internet Ihr Endgerät erreichen und Informationen herunterladen könnten. Daher kann und sollte die Verbindung immer nur von Ihrem Endgerät initiiert werden, nie von einem Server.

Die Alternative zum Polling

Websockets

In der bereits betrachteten Situation des Webseitenaufrufs, gibt es die inzwischen weit verbreitete Möglichkeit, eine dauerhafte Verbindung zum Server aufrecht zu erhalten. Die Technologie nennt sich Websocket.
Hier wird die Verbindung, von Ihrem Endgerät initiiert, nach erfolgreicher Übertragung der Daten nicht geschlossen, sondern bleibt bidirektional offen. Sowohl Browser als auch Server können so nun ohne neuen Verbindungsaufbau untereinander Daten austauschen.
Der Browser wartet so dann nur noch auf ein “Push”, ein neues Event, eine neue Nachricht vom Server, anstatt dauerhaft manuell zu einem gegebenen Intervall nachzufragen.

Webhooks

Server können üblicherweise andere Server direkt kontaktieren. Hier werden dann weder Polling, noch Websockets benötigt.

Verbindungen wie beispielsweise zwischen IFTTT “If This Then That” (Ein Produkt zum Verbinden von Diensten) und Slack (Ein Sofortnachrichtendienst als Alternative zu Microsoft Teams) werden hingegen über Webhooks realisiert.

Häufig sind Webhooks auch unter dem Namen “Callback” bekannt. Vielleicht erklärt sich der Name schon ein wenig selbst. Mithilfe eines Webhooks ist es möglich einem anderen Server mitzuteilen, dass ein Ereignis aufgetreten ist. Server können gegenseitig Verbindungen initiieren. Stellen Sie es sich so vor, als hätte im Diagramm vorhin der Webserver ebenfalls einen Browser und der Browser ebenso einen Webserver.

Wo trifft man auf Webhooks

Wenn Sie das nächste Mal zwei Dienste miteinander verknüpfen, zum Beispiel durch eine Integration, kann es sein, dass Sie eine Webhook URL übertragen werden. Üblicherweise sind diese besonders lang, da die URL selbst oft auch ein Passwort besitzt. Doch auch wenn Sie diese nicht händisch kopieren, kann es sein das eine Integration, die Sie nutzen, einen Webhook im Hintergrund nutzt.