408 Request Timeout

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

Once a server establishes a TCP connection, it waits for the client to send the data. If the client hasn’t sent the data within 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, so browsers can preemptively kick off a DNS lookup or TCP handshake.

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