Webhook
Mit Webhooks (zusammengesetzt aus Skriptfehler: Ein solches Modul „Vorlage:lang“ ist nicht vorhanden. und englisch Skriptfehler: Ein solches Modul „Vorlage:lang“ ist nicht vorhanden., zu deutsch etwa ‚Netz-Haken‘) wird ein nicht-standardisiertes Verfahren zur Kommunikation von Servern bezeichnet, das im Rahmen des verteilten Rechnens oder der Nachrichtenorientierten Middleware genutzt wird. Webhooks ermöglichen es, einer Server-Software mitzuteilen, dass ein bestimmtes Ereignis eingetreten ist und eine Reaktion auf das Ereignis auszulösen. Wenn eine Anwendung über ein eingetretenes Ereignis mittels Webhook informiert, müssen an dem Ereignis interessierte andere Anwendungen kein Polling betreiben, um von dem Ereignis Kenntnis zu erlangen. Das reduziert das Nachrichtenaufkommen zwischen den Anwendungen.
Webhooks finden als einfaches Callback-Verfahren Verwendung zur Daten-Synchronisation, externen Berechnung und zur Datenvalidierung. Technisch wird dazu eine HTTP-POST-Message an eine dafür vorbereitete URL gesendet, welche die angeforderten Daten zurückliefert.<ref name="webhooks"><templatestyles src="Webarchiv/styles.css" />Web Hooks Wiki ( vom 13. April 2012 im Internet Archive) </ref> Im Gegensatz zu SOAP wird keine zusätzliche Transportschicht verwendet, im Unterschied zum Atom Syndication Format sind Webhooks nicht auf das XML-Format festgelegt.
Authentifizierung
Sobald der Client (die Ursprungswebseite- oder Applikation) einen Webhook-Aufruf in Richtung des Benutzerservers auslöst, sollte die eingehende POST-Anfrage authentifiziert werden, um Spoofing-Attacken zu verhindern. Ebenso sollte der Timestamp verifiziert werden, um eine Replay-Attacke auszuschließen.<ref>Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. In: Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. Abgerufen am 9. Februar 2025 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref> Um dies sicherzustellen, gibt es verschiedene Methoden:
- HTTP Basic Authentication: Kann für die Authentifizierung des Clients verwendet werden.<ref>Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. In: Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. Abgerufen am 9. Februar 2025 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref>
- Für die Verifizierung des Webhooks, kann dieser Informationen, wie ein Shared Secret, Digitale Signaturen oder den Typen des Events enthalten.<ref>Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. In: Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. Abgerufen am 9. Februar 2025 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref>
- Eine HMAC-Signatur kann als HTTP-Header eingefügt werden.<ref>Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. In: Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. Abgerufen am 9. Februar 2025 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref>
Anwendungsbeispiele
- Event-Notification (Benachrichtigung): Mitteilung, dass ein bestimmtes Event eingetreten ist
- Pipes: Weiterleitung von Daten. Beispielsweise erhält ein Nutzer eine E-Mail-Benachrichtigung, wenn ein Foto zu einem bestimmten Thema hochgeladen wird.
- Plugins: Schnittstelle zur Kommunikation einer Webseite mit Plugins oder Apps.
Anwendungen
Webhooks werden unter anderem verwendet von<ref name="webhooks" /> Vorlage:Mehrspaltige Liste
Spezifikationen
Derzeit existiert kein Standard zur Implementierung. Es werden Möglichkeiten einer Spezifikation auf Basis von REST-Mustern diskutiert.
Weblinks
Einzelnachweise
<references />