Hypertext Transfer Protocol(HTTP), is the method by which clients (i.e. you) and servers communicate. When someone clicks a link, types in a URL or submits out a form, their browser sends a request to a server for information.

It might be asking for a page, or sending data, but either way, that is called an HTTP Request. When a server receives that request, it sends back an HTTP Response, with information for the client.

Usually, this is invisible, though I’m sure you’ve seen one of the very standard Response codes – 404, indicating a page was not found.

There are a fair few more status codes sent by servers, and the following is a list of the  HTTP error status codes along with an explanation of their meanings.

The codes are three-digit numbers. Five classes of HTTP codes, divided into categories by the first digit, exist:

  • A first digit of 1, 2, or 3 represents a fully functional request.
  • A first digit of 4 represents a client-side error. The most common codes span 400 to 404.
  • A first digit of 5 represents a server-side error. The most common codes span 500 to 510.

Informational

This class of status code indicates a provisional response consisting only of the Status-Line and optional headers, and is terminated by an empty line. HTTP did not define any 1xx status codes, servers must not

HTTP did not define any 1xx status codes, servers must not send a 1xx response to an HTTP client except under experimental conditions.

  • 100 – Continue
    A status code of 100 indicates that (usually the first) part of a request has been received without any problems, and that the rest of the request should now be sent.
  • 101 – Switching Protocols
    HTTP 1.1 is just one type of protocol for transferring data on the web, and a status code of 101 indicates that the server is changing to the protocol it defines in the “Upgrade” header it returns to the client. For example, when requesting a page, a browser might receive a status code of 101, followed by an “Upgrade” header showing that the server is changing to a different version of HTTP.

Successful

This class of status codes indicates the action requested by the client was received, understood, accepted and processed successfully.

  • 200 – OK
    The 200 status code is by far the most common returned. It means, simply, that the request was received and understood and is being processed.
  • 201 – Created
    A 201 status code indicates that a request was successful and as a result, a resource has been created (for example a new page).
  • 202 – Accepted
    The status code 202 indicates that server has received and understood the request, and that it has been accepted for processing, although it may not be processed immediately.
  • 203 – Non-Authoritative Information
    A 203 status code means that the request was received and understood, and that information sent back about the response is from a third party, rather than the original server. This is virtually identical in meaning to a 200 status code.
  • 204 – No Content
    The 204 status code means that the request was received and understood, but that there is no need to send any data back.
  • 205 – Reset Content
    The 205 status code is a request from the server to the client to reset the document from which the original request was sent. For example, if a user fills out a form, and submits it, a status code of 205 means the server is asking the browser to clear the form.
  • 206 – Partial Content
    A status code of 206 is a response to a request for part of a document. This is used by advanced caching tools, when a user agent requests only a small part of a page, and just that section is returned.

Redirection

This class of status code indicates the client must take additional action to complete the request. Many of these status codes are used in URL redirection.

  • 300 – Multiple Choices
    The 300 status code indicates that a resource has moved. The response will also include a list of locations from which the user agent can select the most appropriate.
  • 301 – Moved Permanently
    A status code of 301 tells a client that the resource they asked for has permanently moved to a new location. The response should also include this location. It tells the client to use the new URL the next time it wants to fetch the same resource.
  • 302 – Found
    A status code of 302 tells a client that the resource they asked for has temporarily moved to a new location. The response should also include this location. It tells the client that it should carry on using the same URL to access this resource.
  • 303 – See Other
    A 303 status code indicates that the response to the request can be found at the specified URL, and should be retrieved from there. It does not mean that something has moved – it is simply specifying the address at which the response to the request can be found.
  • 304 – Not Modified
    The 304 status code is sent in response to a request (for a document) that asked for the document only if it was newer than the one the client already had. Normally, when a document is cached, the date it was cached is stored. The next time the document is viewed, the client asks the server if the document has changed. If not, the client just reloads the document from the cache.
  • 305 – Use Proxy
    A 305 status code tells the client that the requested resource has to be reached through a proxy, which will be specified in the response.
  • 307 – Temporary Redirect
    307 is the status code that is sent when a document is temporarily available at a different URL, which is also returned. There is very little difference between a 302 status code and a 307 status code. 307 was created as another, less ambiguous, version of the 302 status code.

Client Error

Web server (HTTP) error messages from 400 to 499 are the result of HTTP requests sent by the user’s client (internet browser or etc.).

These errors are technically the result of a problem with the client’s (like the browser’s) request, but they often point to a problem on a website. For example, if a faulty link exists on your home page, and visitors click it, they receive a 404 error.

For this reason, we strongly recommend that you monitor these errors and investigate their causes. Because visitors see these errors the most often, we suggest that you customize these error pages in cPanel’s

Because visitors see these errors the most often, we suggest that you customize these error pages in cPanel’s Error Pages interface (Home >> Advanced >> Error Pages).

Here are some of the most common errors:

  • 400 – Bad Request
    A status code of 400 indicates that the server did not understand the request due to bad or unrecognizable syntax. This is often due to an issue with the URL being accessed having incorrect syntax such as an invalid character being used (e.g. a percentage sign improperly added to the URL). Cookies can also pose as a cause for this issue if they’re corrupt or too old, in which clearing your cache and cookies will resolve this issue. An Apache web server configured with mod_security can also trigger this error if the request made triggers a rule that is in place. In general, any sort of malformed HTTP request can cause this issue, which could be caused by human error or an issue with the browser being used.
  • 401 – Unauthorised
    A 401 status code indicates that before a resource can be accessed, the client must be authorised by the server. This status code is similar to 403 below, but is returned when authentication is required or login information has not been supplied on the page you’re accessing.
  • 402 – Payment Required
    The 402 status code is not currently in use, being listed as “reserved for future use”.
  • 403 – Forbidden
    The request that you made is valid and understood by the web server, but it will not retrieve the requested resource. This is typically a message that you will receive in your browser when the user that the web server is running as has insufficient permissions to access the files you have requested. Ensuring that the user has read permission on the files will resolve the issue. This status code could also potentially be caused by an .htaccess allow/deny list, in which the IP or host you’re connecting from is not permitted to access the files. Another common cause for this error is simply having no index file present in your web directory. You can also check whether the system protects the file in cPanel’s Indexes interface (Home >> Advanced >> Indexes).
  • 404 – Not Found
    This is the general status that you will receive when the file requested is not able to be served by the web server at the specified location. This will be returned if you mistype a URL or try to access something that simply does not exist on the web server.
  • 405 – Method Not Allowed
    A 405 status code is returned when the client has tried to use a request method that the server does not allow. Request methods that are allowed should be sent with the response (common request methods are POST and GET).
  • 406 – Not Acceptable
    The 406 status code means that, although the server understood and processed the request, the response is of a form the client cannot understand. A client sends, as part of a request, headers indicating what types of data it can use, and a 406 error is returned when the response is of a type not i that list.
  • 407 – Proxy Authentication Required
    The 407 status code is very similar to the 401 status code, and means that the client must be authorised by the proxy before the request can proceed.
  • 408 – Request Timeout
    A 408 status code means that the client did not produce a request quickly enough. A server is set to only wait a certain amount of time for responses from clients, and a 408 status code indicates that time has passed.
  • 409 – Conflict
    A 409 status code indicates that the server was unable to complete the request, often because a file would need to be editted, created or deleted, and that file cannot be edited, created or deleted.
  • 410 – Gone
    A 410 status code is the 404’s lesser known cousin. It indicates that a resource has permanently gone (a 404 status code gives no indication if a resource has gone permanently or temporarily), and no new address is known for it.
  • 411 – Length Required
    The 411 status code occurs when a server refuses to process a request because a content length was not specified.
  • 412 – Precondition Failed
    A 412 status code indicates that one of the conditions the request was made under has failed.
  • 413 – Request Entity Too Large
    The 413 status code indicates that the request was larger than the server is able to handle, either due to physical constraints or to settings. Usually, this occurs when a file is sent using the POST method from a form, and the file is larger than the maximum size allowed in the server settings.
  • 414 – Request URL Too Long
    The 414 status code indicates the the URL requested by the client was longer than it can process.
  • 415 – Unsupported Media Type
    A 415 status code is returned by a server to indicate that part of the request was in an unsupported format.
  • 416 – Requested Range Not Satisfiable
    A 416 status code indicates that the server was unable to fulfill the request. This may be, for example, because the client asked for the 800th-900th bytes of a document, but the document was only 200 bytes long.
  • 417 – Expectation Failed
    The 417 status code means that the server was unable to properly complete the request. One of the headers sent to the server, the “Expect” header, indicated an expectation the server could not meet.

Server Error

The HTTP error codes that vary from 500 to 599 stand for server error messages. That means that the server is aware that it has encountered an error or is otherwise incapable of performing the request.To resolve these issues, contact your system administrator. Here is a list of the most common error responses:

  • 500 – Internal Server Error
    The server encountered an unexpected condition. It is a multipurpose error that displays when the server cannot gather any specific information about the problem. This error often occurs when the server cannot fulfill an application request because of a misconfigured application.To resolve this issue, contact your system administrator.
  • 502 – Bad Gateway
    This error usually occurs due to improperly configured proxy servers. However, the error also arises when there is poor IP communication between backend computers, when the client’s Internet Service Provider (ISP) is overloaded, or when a firewall functions improperly.The first step to resolve the issue is to clear the client’s cache. This action results in the use of a different proxy to resolve the web server’s content.
  • 503 – Service Unavailable
    The server cannot handle requests because of a temporary overload or because the server is temporarily closed for maintenance. The error signifies that the server will only be unavailable temporarily. It is possible to receive other errors in place of 503.To resolve this issue, contact your system administrator.
  • 504 – Gateway Timeout
    A server did not receive a timely response from another server. Slow communication between upstream servers causes this error.To resolve this issue, contact your system administrator.
  • 505 – HTTP Version Not Supported
    The server refuses to support the HTTP protocol that the client computer specifies. This error occurs if the client computer does not correctly specify the protocol (for example, if it specifies an invalid version number).This error should not occur if you have a current installation of cPanel & WHM.
  • 506 – Variant Also Negotiates

    The server is not properly configured. To resolve this issue, contact your system administrator.

  • 507 – Insufficient Storage

    The server is out of free memory. This error usually occurs when a requested application cannot allocate the necessary system resources in order to run.

    To resolve this issue, contact your system administrator.

  •  509 – Bandwidth Limit Exceeded

    Your server reached the bandwidth limit that the system administrator imposed. The only solution for this issue is to wait until the limit resets in the following cycle.

    To resolve this issue, contact your system administrator.

  •  510 – Not Extended

    The web server does not support an extension that is attached to the HTTP request.

    To resolve this issue, contact your system administrator.

Conclusion

Now you are well known with the most common HTTP error codes and common solutions to those codes. You should have a basic basis for fixing issues with your web servers or applications.

If you encounter any error codes that were not mentioned in this guide or if you know of other likely solutions to the ones that were described, feel free to discuss them in the comments!