✦ Oplossingen · HTTP-foutcodes

408 Request Timeout: de server wachtte te lang op je aanvraag

Krijg je 408 Request Timeout? De server wachtte te lang op jouw aanvraag, vaak door een trage verbinding of grote upload. Lees het verschil met 504 en volg de stappen.

Zo ziet de foutmelding eruit

  • 408 Request Timeout
  • 408 Request Time-out
  • Server timeout waiting for the HTTP request from the client.
  • Request Timeout

Waarom gebeurt dit?

Een 408 Request Timeout betekent dat de server de verbinding heeft gesloten omdat jouw kant de aanvraag niet op tijd volledig heeft verstuurd. De server wacht een bepaalde tijd op de headers en de inhoud van een aanvraag; komt er te lang niets binnen, dan stopt hij met wachten.

De oorzaak ligt meestal bij de verbinding van de gebruiker: een trage of wegvallende wifi, een overbelaste mobiele verbinding, een VPN of proxy die vertraagt, of een groot bestand dat te langzaam wordt geüpload. Soms staan de wachttijden op de server erg krap ingesteld, of zit er een proxy of load balancer tussen met een eigen limiet.

Het is het spiegelbeeld van een 504 Gateway Timeout. Bij 408 wacht de server op de bezoeker; bij 504 wacht de webserver of proxy op de achterliggende applicatie. Die twee los je op heel verschillende plekken op.

Zo herken je dit probleem

  • De fout komt vooral bij uploaden of versturen van grote formulieren, en vaker op mobiel of wifi met slecht bereik.
  • Via een ander netwerk (bijvoorbeeld mobiele data in plaats van wifi) lukt het wel.
  • De pagina laadt lang en eindigt met 504: dan ligt het aan de server, zie 502, 503 of 504-fout.
  • Krijg je helemaal geen verbinding, dan is het eerder ERR_CONNECTION_TIMED_OUT.

Zo los je het op, stap voor stap

Menunamen kunnen per versie of toestel iets anders heten. Loop de stappen op volgorde af en stop zodra het werkt.

  1. Herlaad en probeer het opnieuw

    Een 408 is vaak een eenmalige hapering in de verbinding. Herlaad de pagina of verstuur het formulier nog een keer. Lukt het nu wel, dan was het waarschijnlijk een tijdelijke onderbreking.

  2. Controleer je internetverbinding

    Test of andere sites snel laden. Zit je ver van de router, ga dichterbij staan of gebruik een kabel. Herstart zo nodig de router. Bij aanhoudend trage verbindingen helpen internet traag en wifi valt steeds weg verder.

  3. Zet VPN, proxy of netwerkscanner tijdelijk uit

    Een VPN of proxy kan vertraging geven, en sommige beveiligingsprogramma’s controleren al het webverkeer voordat het wordt doorgestuurd. Schakel ze kort uit om te testen en zet ze daarna weer aan. Gebruik je een bedrijfsnetwerk, vraag dan de beheerder of er een proxy tussen zit.

  4. Maak grote uploads kleiner

    Lukt een upload niet, verklein dan het bestand: comprimeer foto’s, exporteer een pdf kleiner of verstuur meerdere kleinere bestanden. Is het bestand te groot voor de server zelf, dan krijg je eerder 413 dan 408.

  5. Beheerder: zoek de 408’s in het toegangslog

    Kijk hoe vaak, voor welke adressen en bij welke bezoekers de 408 voorkomt. Losse 408-regels zonder echte aanvraag komen vaak van verbindingen die een browser of scanner opent en niet gebruikt; die zijn onschuldig. Veel 408’s op een uploadpagina wijzen op een echt probleem.

    grep ' 408 ' /var/log/nginx/access.log | tail -n 20
    grep -c ' 408 ' /var/log/nginx/access.log
  6. Beheerder: controleer de wachttijden van de webserver

    nginx gebruikt client_header_timeout voor het ontvangen van de headers en client_body_timeout voor de inhoud. Die laatste geldt voor de tijd tussen twee leesacties, niet voor de hele upload. Bij Apache bepalen Timeout en de module mod_reqtimeout met RequestReadTimeout hoe lang er gewacht wordt. Verhoog die alleen gericht: te ruime wachttijden maken de server kwetsbaar voor aanvallen die verbindingen openhouden.

    # nginx (http-, server- of locationblok)
    client_header_timeout 60s;
    client_body_timeout 120s;
    
    # Apache (mod_reqtimeout)
    RequestReadTimeout header=20-40,MinRate=500 body=20,MinRate=500
  7. Beheerder: kijk naar proxy’s en load balancers

    Zit er een proxy, load balancer of CDN vóór de webserver, dan heeft die vaak eigen wachttijden. De laagste waarde in de keten wint. Controleer daarom elke laag, en test rechtstreeks op de server om te zien welke laag de 408 geeft.

  8. Ontwikkelaar: maak grote uploads robuust

    Moeten gebruikers grote bestanden kunnen aanleveren, gebruik dan uploads in delen (chunked upload) die bij een onderbreking verder kunnen. Toon een voortgangsbalk en een duidelijke foutmelding met de optie om opnieuw te proberen.

408 vergeleken met 504 en een verbindingstime-out

Alle drie zijn time-outs, maar ze gaan over een ander deel van de route:

  • 408 Request Timeout: de server wachtte te lang op de aanvraag van de bezoeker.
  • 504 Gateway Timeout: de webserver of proxy wachtte te lang op de applicatie of een achterliggende server.
  • ERR_CONNECTION_TIMED_OUT: de browser kreeg niet eens een verbinding met de server.

Wanneer schakel je hulp in?

  • Klanten melden dat uploaden op je website steeds mislukt.
  • Je ziet veel 408’s in je logs en weet niet of het onschuldig is of een aanval.
  • Je wilt time-outs aanpassen maar weet niet welke laag (CDN, proxy, webserver) de fout geeft.
  • Het probleem speelt op het bedrijfsnetwerk en een proxy of firewall lijkt de boosdoener.

Lukt het niet? Wij helpen

Kom je er met deze stappen niet uit, of wil je het liever niet zelf doen? We kijken online mee of komen langs. Hulp op afstand kost €20 per uur; komen we langs, dan is de prijs op aanvraag. Je weet vooraf waar je aan toe bent.

Aanvraag

Hulp aanvragen

Schrijf kort wat er misgaat en wat je al hebt geprobeerd. Kies of we bellen, online meekijken of langskomen.

Veelgestelde vragen

Vragen over dit probleem

Wat betekent 408 Request Timeout?

De server sloot de verbinding omdat jouw aanvraag niet op tijd volledig binnenkwam. Meestal ligt het aan een trage of onderbroken verbinding.

Wat is het verschil tussen 408 en 504?

Bij 408 wachtte de server op de bezoeker, bij 504 wachtte de webserver op de applicatie erachter. Een 504 los je op de server op, een 408 vaak bij de verbinding.

Ik zie 408 in mijn logs, is mijn site stuk?

Niet per se. Losse 408’s zonder echte aanvraag komen van verbindingen die niet worden gebruikt. Pas als ze geconcentreerd voorkomen op bijvoorbeeld een uploadpagina is er iets aan de hand.

Helpt het om de time-out op de server heel hoog te zetten?

Een beetje ruimer kan helpen bij trage uploads, maar te hoge waarden laten verbindingen lang openstaan. Dat kost geheugen en maakt de server gevoeliger voor misbruik.