Nodea — logo

408 error (Request Timeout)

The 408 error (Request Timeout) is an HTTP status code indicating that the server closed a connection because the client failed to transmit a complete request within the allotted time. Unlike most 4xx errors it says nothing about the request's content — only about its pace. The server simply stopped waiting.

How the 408 error works

A web server keeps an idle connection open only for a configured period, governed by directives such as RequestReadTimeout in Apache or client_header_timeout and client_body_timeout in Nginx. If the request headers or body do not arrive within that window, the server responds with 408 and drops the connection. Common scenarios include a slow or unstable client connection, an interrupted upload of a large file, a mobile app that opened a socket and went silent, or an overloaded proxy or load balancer aggressively reaping idle sessions. Note that some browsers pre-open spare connections they never use, so an occasional 408 in the logs is perfectly normal.

Practical applications

For end users the remedy is usually trivial: reload the page, check the connection quality or disable a flaky VPN. Administrators should look at patterns instead of single events. If 408s cluster around file uploads, raise the body-read timeouts and size limits; if they appear in bursts under normal traffic, the limits may be too strict or the server too busy — monitoring TTFB and connection counts helps pinpoint which. A flood of deliberately slow requests is the signature of a slowloris attack, mitigated with modules like mod_reqtimeout, per-IP connection caps and rate limiting at the reverse proxy or CDN layer.

Powiązane pojęcia

Najczęstsze pytania

What is the difference between a 408 and a 504 error?

A 408 concerns the client-to-server leg: the client did not deliver its request in time. A 504 (Gateway Timeout) happens between servers — a gateway or reverse proxy gave up waiting for a response from the upstream application server behind it.