Every request to a web server is returned with a HTTP status code. Mode of the time that status code is 200 – everything is OK. This article will look at all the 5xx error codes that can be returned by a web server. These errors are generated when something happens on the server side that prevents a request being completed. We discussed HTTP 4xx errors in a previous article.
There are other status codes that can be returned but we are only concerned with errors. The W3.org protocol website has a full list.
We will use simple terminology as often as possible to explain the errors. In the explanations when we refer to “web browser” we are technically referring the what the specification calls the “client.” We will also use the term “page” when we really should use “resource.”
This is the default error returned by your web server when an unexpected condition prevents it from returning the page.
It is often a scripting error caused by a CGI script or could be a syntax error in a .htaccess file.
The server will usually log a more specific error to the server’s log when a 500 error occurs. To resolve it you should roll back any changes you have recently made to any scripts that relate to the requested page.
There are an array of methods that a web server can support. The most common are GET and POST but there are others too. If a web browser attempts to connect with a method that the server does not support then a 501 error will be returned
It is a very rare error as just about every web server will support all the most common request methods.
A request to a web server may be routed through an intermediate gateway or proxy before returning the requested page. If the proxy is unable to exchange information with the destination server it will return this error. It is not caused by either of the servers being down, but rather that one of them is sending corrupted data to the other or they cannot agree on the protocol to use.
This error will only be returned upon a significant corruption of one of the machines in the pathway to the destination server.
This indicates that the server is temporarily unavailable and is usually due to an overloaded server.
A lot of servers choose to simply refuse the connection if they are overloaded rather than returning a 503 error.
This error is not necessarily returned by the destination web server, but by an intermediate system acting as a gateway. The gateway has not received a response from the destination server so has returned an error. Compare this with the 502 error that was returned when the response between the gateway and the server was corrupt.
This error message is returned when the web server is only able to support an older HTTP version than the browser is using.
Over the history of the world wide web there have been HTTP versions 0.9, 1.0, 1.1 and 1.2. 1.1 is the current version and the vast majority of web servers use versions 1.0 and 1.1. This means that 505 errors are very rare.