Dienstag, 7. November 2023

Internet - Verbindungszeitlimit für HTTP-Anfragen (connection timeout during http request)

Es gibt viele Formen von Zeitüberschreitungen bei HTTP-Anfragen. Diese sind das Verbindungszeitlimit, das Anforderungszeitlimit oder das Time to Live Zeitlimit. In diesem Beitrag werde ich diese drei Formen näher beschreiben und Möglichkeiten aufzeigen, um diese "timeouts" per Browsereinstellungen hinauszuzögern.


Verbindungszeitlimit (connection timeout)

Zeitraum, innerhalb dessen eine Verbindung zwischen einem Client und einem Server hergestellt werden muss.

Beispiel: Man navigiert mit dem Browser (Client) zu einer Website (Server). Der Browser beginnt nun auf die Antwortnachricht von diesem Server zu warten. Diese Antwort trifft beim Client aber nie ein (z. B. weil der Server offline ist). Nach 250 Sekunden (Firefox), gibt der Browser das Warten auf (connection timeout).

Die Einstellung kann mit Hilfe von about:config angepasst werden:

  • network.http.connection-retry-timeout

Anforderungszeitüberschreitung (request timeout)

Zeitraum, in dem der Server nicht bereit war, zu lange auf die Antwort vom Client zu warten. Wurde die Verbindung zwischen Server und Client hergestellt, muss der Client den Server regelmäßig darüber informieren das die Verbindung noch besteht. Geschieht dies nicht, trennt der Server diese Verbindung. Siehe auch https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/408.

Die Einstellung kann mi Hilfe von about:config angepasst werden:

  • network.http.pipelining.read-timeout

 

Time to Live (time to live)

Beschreibt den angegebenen Wert eines Paket, wie lange das Paket in einem Netzwerk am Leben bleiben kann. In einem Netzwerk durchläuft ein Paket verschiedene Router, die sich auf dem Weg  zwischen dem Ursprung des Pakets und seinem Ziel befinden. Jedes Mal, wenn der Router das Paket erneut sendet, verringert er auch seinen TTL-Wert um 1. Wenn dieser Wert auf 0 fällt, sendet der Router das Paket nicht erneut, sondern verwirft es einfach, da das Paket nicht mehr leben soll. Hiermit soll eine Datenüberflutung des Netzwerks verhindert werden, da jedes Paket nur für eine begrenzte „Zeit“ darin verbleiben kann.

Die Einstellung kann mi Hilfe von about:config angepasst werden:

  • network.http.keep-alive.timeout