Nodea — logo

błąd 408

Błąd 408 (Request Timeout) to kod odpowiedzi HTTP oznaczający, że serwer zamknął połączenie, ponieważ klient nie przesłał kompletnego żądania w wyznaczonym limicie czasu. W odróżnieniu od większości błędów z rodziny 4xx nie wynika on z treści żądania, lecz z jego tempa — serwer po prostu przestał czekać.

Jak działa błąd 408

Serwer WWW utrzymuje otwarte połączenie tylko przez określony czas, sterowany dyrektywami konfiguracji (w Apache m.in. RequestReadTimeout, w Nginx client_header_timeout i client_body_timeout). Jeśli w tym oknie nie nadejdą nagłówki lub ciało żądania, zwracany jest kod 408, a połączenie zostaje zerwane. Typowe scenariusze to bardzo wolne lub niestabilne łącze klienta, przerwany upload dużego pliku, aplikacja mobilna, która otworzyła połączenie i zamilkła, albo przeciążony serwer pośredniczący czy load balancer agresywnie zamykający bezczynne sesje. Warto pamiętać, że część przeglądarek otwiera zapasowe połączenia „na przyszłość" — sporadyczne 408 w logach są więc naturalne.

Zastosowanie w praktyce

Użytkownik może zwykle rozwiązać problem odświeżeniem strony, sprawdzeniem stabilności łącza lub wyłączeniem VPN. Administrator powinien spojrzeć szerzej: jeśli 408 towarzyszą uploadom, należy wydłużyć limity czasu i rozmiaru ciała żądania; jeśli pojawiają się seriami przy normalnym ruchu, limity mogą być zbyt restrykcyjne albo serwer nie nadąża z obsługą połączeń — pomocne będzie monitorowanie TTFB i obciążenia. Masowe, celowo powolne żądania to z kolei sygnatura ataku typu slowloris, przed którym chronią moduły takie jak mod_reqtimeout, limity równoległych połączeń per IP oraz rate limiting na reverse proxy lub CDN. Przy diagnozie warto też odróżnić 408 od pokrewnego kodu 504 (Gateway Timeout): pierwszy dotyczy zbyt wolnego klienta, drugi — braku odpowiedzi serwera aplikacji za bramą, więc mylenie ich prowadzi do szukania problemu w niewłaściwej warstwie infrastruktury.

Powiązane pojęcia

Najczęstsze pytania

Czym różni się błąd 408 od 504?

Błąd 408 dotyczy relacji klient–serwer: to klient nie dostarczył żądania na czas. Błąd 504 (Gateway Timeout) występuje między serwerami — brama lub reverse proxy nie doczekały się odpowiedzi od serwera aplikacji stojącego za nimi.