Wat betekent statuscode 408 Request Timeout?

Home - Wat betekent statuscode 408 Request Timeout?
408 request timeout

Soms duurt het allemaal net iets te lang. Je doet een verzoek naar een server, maar de server wacht… en wacht… en besluit dan om het op te geven. Je krijgt geen response, maar een foutmelding: 408 Request Timeout.

De server heeft het verzoek wel gezien, maar er kwam geen volledige data binnen binnen de verwachte tijd. Geen netwerkfout, geen verkeerde URL, gewoon: te laat.

De http 408 fout geeft aan dat de client niet snel genoeg was met het verzenden van het verzoek, waardoor de server het heeft beëindigd.

In veel gevallen merk je er als gebruiker weinig van. De browser probeert opnieuw, of laadt de pagina alsnog. Maar in API’s, scripts of trage verbindingen kan de 408 http fout hard binnenkomen.

Wat gebeurt er bij een 408 fout?

De 408 statuscode is onderdeel van de 4xx-serie: fouten aan de kant van de client. In dit geval heeft de client wél contact gelegd, maar duurde het te lang voordat het volledige verzoek werd verzonden.

Elke server heeft een bepaalde timeout ingesteld. Als je bijvoorbeeld een POST-verzoek stuurt, maar het lichaam van dat verzoek komt nooit aan, of veel te langzaam, dan besluit de server uiteindelijk: hier stoppen we mee.

De foutmelding die je dan krijgt is:

HTTP/1.1 408 Request Timeout

Vaak stuurt de server een suggestie mee dat je het later opnieuw kunt proberen. Het is dus geen permanente fout, maar eerder een mislukte poging door vertraging.

Wanneer zie je een 408 http fout?

HTTP 408

De kans op een 408 neemt toe bij:

  • Instabiele of langzame netwerken
  • Grote payloads die niet op tijd verzonden worden
  • Mobiele verbindingen of slecht bereik
  • Clients die om wat voor reden dan ook blijven hangen voordat ze het verzoek afmaken

In browsers komt het niet vaak voor als zichtbare foutmelding. Meestal herhaalt de browser het verzoek automatisch. Maar in API-clients, logbestanden of monitoringtools zie je de 408 wel degelijk verschijnen.

Ook load balancers en reverse proxies kunnen een http 408 teruggeven als ze te lang op data moeten wachten van de client.

Hoe weet je dat het om een 408 gaat?

In browsers verschijnt soms een korte melding als:

408 Request Timeout
Your browser didn’t send a complete request in time.

In tools zoals curl of Postman zie je de statuscode direct terug. En in je backendlogs vind je regels met:

status=408 response_time=30.002

De exacte melding kan per server verschillen. Apache, Nginx, Varnish of een cloudproxy geven elk hun eigen variant. Wat ze gemeen hebben: ze wachten, maar niet eindeloos.

Wat kun je doen tegen een 408 foutmelding?

De oplossing zit vaak in het verbeteren van de timing, aan clientzijde of in de infrastructuur.

  • Controleer of je client het verzoek volledig en tijdig verstuurt. Bij scripts of API-calls kan een fout in het verzendproces zorgen voor vertraging.
  • Verminder de grootte van de payload. Grote JSON-objecten of bestanden zorgen sneller voor timeouts.
  • Pas de timeoutinstellingen aan als je controle hebt over de server. In Apache bijvoorbeeld via Timeout, in Nginx via client_header_timeout.
  • Zorg voor stabiel netwerkverkeer, zeker bij mobiele toepassingen of IoT-devices.
  • Bij load balancers of proxies: controleer of ze niet te agressief afkappen.

Let op: een 408 fout betekent niet dat het verzoek nooit binnenkomt, alleen dat het te laat komt.

Tot slot

Een 408 http foutmelding is geen crash en geen blokkade. Het is een time-out: de server wachtte op jouw input, maar kreeg niets, of niet snel genoeg.

De 408 status code komt relatief weinig voor bij normale sites, maar des te vaker in API’s, mobiele toepassingen of netwerken waar latency een rol speelt.

Zie je deze fout terug in je logs of monitoring? Dan is het geen kwestie van debugging, maar van tempo.

Zorg dat je verzoeken aankomen. En op tijd.

Foto van David Ladiges
David Ladiges
Technical Lead
Op deze pagina

Deel dit artikel: