In some cases (especially with older and slower websites) your pages and resources may return 4xx and 5xx status codes simply because the server was unable to handle the requests.
This group of HTTP status codes indicates that the server is aware that it is in error or is incapable of performing the request. The server response usually includes an explanation of the error situation and if it is a temporary or permanent condition. These response codes in this group are applicable to any request method.
The web server responds with this status code when it has encountered an unexpected condition, which prevented it from fulfilling the request by the client.
501 – Not Implemented
The web server responds with this status code when it does not support the functionality required to process the request. This is the appropriate response when the server does not recognize the request method and is not capable of supporting it for any resource.
502 – Bad Gateway
The server responds with this status code when, while acting as a gateway or proxy, it received an invalid response from the upstream server it accessed in attempting to process the request.
503 – Service Unavailable
The web server responds with this status code when it is currently unable to handle the request due to a temporary overloading or maintenance of the server. The implication is that this is a temporary condition, which will be alleviated after some delay. If known, the length of the delay may be indicated in a Retry-After header. If no Retry-After is given, the client should handle the response as it would for a 500 response.
504 – Gateway Timeout
The server, while acting as a gateway or proxy, did not receive a timely response from the upstream server specified by the request URL (e.g. HTTP, FTP, LDAP) or some other auxiliary server (e.g. DNS) it needed to access in attempting to complete the request.
505 – HTTP Version Not Supported
The web server responds with this status code when it does not support, or refuses to support, the HTTP protocol version that was used in the request message. The server is indicating that it is unable or unwilling to complete the request using the same major version as the client. The response should contain an entity describing why that version is not supported and what other protocols that server supports.