408 Request Timeout

The HTTP 408 status code means a server has decided to close the connection after waiting for too long to receive the data from the client.

Once a server establishes a TCP connection, it waits for a client to send the data. If the client hasn’t sent the data in the allotted time window (timeout), the server closes the connection by sending a Connection header with a close value.

Connection: close


Modern browsers use speculative optimization techniques to speed up browsing. For instance, hovering over a link or typing a URL into a browser bar is a good proxy that the user will want to visit those pages next, thus browsers can preemptively kick off a DNS lookup or TCP handshake.

The problem is that a lot of TCP connections browser opens sit idle. Since most of those connections can go unused (and timeout in the meantime), some users can get the 408 Request Timeout status code by the time they open the page.

Interested in no-nonsense technical guides?

No spyware, no promotional emails, or keyword-stuffed junk. I will only send you a single email when I've got something interesting to say. Unsubscribe anytime.

You can also subscribe to the Atom feed (it's like RSS, but better).