What is the difference between HTTP 408 and 504 errors?

21.1k views Asked by At

These are both timeout errors, but who is timing out in a 408 vs. a 504?

From w3, 408 is defined as:

The client did not produce a request within the time that the server was prepared to wait. The client MAY repeat the request without modifications at any later time.

...And 504 is:

The server, while acting as a gateway or proxy, did not receive a timely response from the upstream server specified by the URI (e.g. HTTP, FTP, LDAP) or some other auxiliary server (e.g. DNS) it needed to access in attempting to complete the request.

So who is the 'client' in the 408 if not an intermediary server? If it's an actual end user, how does a server know to wait for their request before they have made it?

2

There are 2 answers

2
user207421 On BEST ANSWER

The client is the browser or client application. The server knows to wait for a request because it has accepted a connection, or already read part of the request, say a header or two.

0
Alex F On

Amazon documentation tells: http://docs.aws.amazon.com/en_en/elasticloadbalancing/latest/classic/ts-elb-error-message.html#ts-elb-errorcodes-http408

Indicates that the client cancelled the request or failed to send a full request

Mozilla documentation tells: https://developer.mozilla.org/en/docs/Web/HTTP/Status/408

The HTTP 408 Request Timeout response status code means that the server would like to shut down this unused connection. It is sent on an idle connection by some servers, even without any previous request by the client