Zeitüberschreitung der Anfrage

Ein Timeout ist eine vom Client selbst festgelegte Frist. Ohne ein solches Timeout kann eine Anfrage an einen Server, der nie antwortet, eine Verbindung, einen Thread und die Geduld des Benutzers unbegrenzt blockieren. Timeouts bestehen üblicherweise aus mehreren Komponenten: der Wartezeit für den Verbindungsaufbau, der Wartezeit auf das erste Byte und der maximalen Dauer des gesamten Datenaustauschs.

So funktioniert es

Wenn die Frist abläuft, bricht der Client ab und meldet einen Fehler – im Browser über den AbortController, in den meisten Bibliotheken als Timeout-Ausnahme. Jeder Zwischenschritt hat seine eigene Timeout-Ausnahme: Browser, CDN, Load Balancer, Gateway und Anwendung. Ist ein inneres Timeout länger als ein äußeres, gibt die äußere Schicht zuerst auf, und die Arbeit innerhalb der Schicht wird ohne Wartezeit fortgesetzt.

Das Missverständnis

Es ist nicht zu einer Anfrage mit Zeitüberschreitung gekommen. Der Server könnte die Anfrage empfangen und bearbeitet haben, nachdem der Client die Kommunikation eingestellt hatte; möglicherweise wurde die Bestellung durch einen POST-Request mit Zeitüberschreitung ausgelöst. Behandeln Sie eine Zeitüberschreitung als "unknown outcome" und stellen Sie sicher, dass Schreibvorgänge mithilfe eines Idempotenzschlüssels wiederholt werden können.

Probieren Sie es hier aus

GET /protocol/v1/gateway-timeout wartet etwa drei Sekunden, bevor es mit 504 antwortet, und GET /pizza/v1/oven/preheat benötigt etwa drei Sekunden, bis es erfolgreich ist – setzen Sie ein Client-Timeout von zwei Sekunden und vergleichen Sie, was die einzelnen Befehle tun.

Quellen

Weitere Begriffe

Diese Seite auf Englisch lesen

Alle Glossarbegriffe · Testtechniken · Alle 39 Mock-REST-APIs

Zuletzt aktualisiert