Wir verwenden Cookies, um unsere Website effizienter und benutzerfreundlicher zu machen. Erfahren Sie in unserer Datenschutzerklärung mehr darüber, wie wir Cookies verwenden.

HTTP Retry

Wenn ein Webbrowser keine Antwort auf einen HTTP-Request bekommt weil zum Beispiel die Verbindung unterbrochen wurde wiederholt er automatisch den HTTP-Request. Dieses Verhalten ist für die BenutzerInnen nicht bemerkbar. Aus diversen Gründen werden auch POST und PUT HTTP-Requests wiederholt. Was wiederum zu Problemen und inkonsistenten Daten führen kann.

The status quo, therefore, is that no Web application can read HTTP’s retry requirements as a guarantee that any given request won’t be retried, even for methods that are not idempotent. As a result, applications that care about avoiding duplicate requests need to build a way to detect not only user retries but also automatic retries into the application “above” HTTP itself. https://mnot.github.io/I-D/Abandoned/httpbis-retry/#auto_retry

In der Praxis müssen demnach auch POST und PUT HTTP-Endpunkte idempotent sein. Details dazu sind unter Implementierung von Idempotentz zu finden.

Die Implementierung für HTTP-Endpunkte ist identisch zu sonstigen idempotenten Befehlen. Wie in der folgenden Visualisierung zu sehen ist gibt es drei verschiedene Szenarien.

  1. Der Original HTTP-Request (Request) wird von der Software vollständig abgearbeitet bevor der Retry HTTP-Request (Request') ankommt.

  2. Der Retry HTTP-Request (Request'') kommt an bevor die Verarbeitung des Originals abgeschlossen ist. Die Verarbeitung des Originals ist jedoch schneller.

  3. Der Retry HTTP-Request (Request''') kommt an bevor die Verarbeitung des Originals abgeschlossen ist. Die Verarbeitung des Originals ist jedoch langsamer.

Visualisierung von HTTP-Request Retry Szenarien