Was sind Webhooks und wozu braucht man diese?

Icon For Clock 4 Min. Lesezeit

In diesem Artikel lernen Sie, was ein Webhook ist und welches Konzept sowie welche Überlegungen hinter seiner Nutzung stehen. Damit Sie die Hintergründe besser verstehen können, beginnen wir am besten vorne, nämlich 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. Je nach Tageszeit schauen Sie alle 10 Minuten bis alle paar Stunden nach neuen E-Mails. Es kann also eine Weile dauern, bis Sie reagieren können. Besonders um wichtige E-Mails nicht zu verpassen, überprüfen Sie Ihr Postfach zu bestimmten Zeiten möglicherweise sogar alle paar Minuten. Genau dieses Abholen neuer Nachrichten oder allgemeiner gesagt das regelmäßige Abfragen von Events oder anderen Änderungen ist Polling.

Wenn es nicht um E-Mails geht, sondern um Sofortnachrichten wie in Microsoft Teams oder WhatsApp, können Sie sich sicher vorstellen, dass die Prüfung auf neue Nachrichten eher sekündlich stattfinden muss, um echtes “instant messaging” zu ermöglichen.

Was sind die Nachteile von Polling?

Zwei große Nachteile des Pollings sind ein hoher Bandbreitenverbrauch und ein erhöhter Stromverbrauch, auch dann, wenn es keine Änderungen gibt. Das ist besonders für Mobilgeräte problematisch, da dadurch Datenvolumen beansprucht und der Akku schneller entleert wird. Auch für Server entsteht eine enorme Belastung durch die Vielzahl an Abfragen.
Zur Verdeutlichung eine kleine Rechnung:
35 Nutzer * 1 Abfrage alle 3 Sekunden ergibt bereits 1.008.000 Abfragen pro Tag. Prozesse, die auf Polling basieren, sind daher 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 existieren bidirektionale Verbindungen. Wenn Sie eine Webseite besuchen, erhalten Sie vom Webserver den Inhalt. Auf vielen Webseiten sind im Inhalt weitere Elemente wie Bilder oder Videos verlinkt. Ihr Browser fragt auch diese automatisch beim Webserver an und erhält die entsprechenden Daten.

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

Alle Interaktionen zwischen Browser und Webserver enden 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 Polling betrieben werden.
Es wäre ein drastisches Sicherheitsrisiko, wenn Server im gesamten Internet dauerhaft Ihr Endgerät erreichen und Daten abrufen könnten. Deshalb kann und sollte eine Verbindung immer nur von Ihrem Endgerät initiiert werden, nicht von einem Server.

Die Alternative zum Polling

Websockets

In der bereits beschriebenen Situation des Webseitenaufrufs gibt es inzwischen die Möglichkeit, eine dauerhafte Verbindung zum Server aufrechtzuerhalten. Diese Technologie nennt sich Websocket.
Hierbei wird die Verbindung, die von Ihrem Endgerät aufgebaut wurde, nach erfolgreicher Übertragung der Daten nicht geschlossen, sondern bleibt bidirektional offen. Sowohl Browser als auch Server können somit ohne erneuten Verbindungsaufbau Daten austauschen.
Der Browser wartet dabei nur noch auf ein Push-Signal, also ein neues Event oder eine neue Nachricht vom Server, anstatt ständig manuell in festen Intervallen nachzufragen.

Webhooks

Server können in der Regel andere Server direkt kontaktieren. Hierfür werden 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 über Webhooks realisiert.

Häufig werden Webhooks auch unter dem Begriff Callback geführt. Der Name erklärt das Prinzip bereits ansatzweise. Mithilfe eines Webhooks ist es möglich, einem anderen Server mitzuteilen, dass ein bestimmtes Ereignis eingetreten ist. Server können also gegenseitig Verbindungen initiieren. Stellen Sie es sich so vor, als hätte im vorigen Diagramm der Webserver ebenfalls einen Browser und der Browser einen Webserver.

Wo trifft man auf Webhooks

Wenn Sie das nächste Mal zwei Dienste miteinander verknüpfen, zum Beispiel über eine Integration, kann es sein, dass Ihnen eine Webhook-URL übergeben wird. Üblicherweise sind diese URLs besonders lang, da sie häufig direkt ein Passwort enthalten. Auch wenn Sie diese URL nicht händisch kopieren, kann eine Integration, die Sie nutzen, im Hintergrund einen Webhook verwenden.