Server Response Codes
Every time a page is requested your server reports how the process of finding and sending the file to the user went. By analysing the server response codes that your server is spitting out, you can diagnose various problems with your site, as well as learning much about the surfing habits of your readers.
This page was last updated on 2012-08-21
Headers
Whenever a user sends a request to a server, a process called a ‘handshake’ begins where the server and your computer communicate and the server makes sure it can accommodate what your user has requested of it. This means being able to make the connection between the two computers and then completing the transfer of data.
Headers are short fragments of text which are generated by servers to hold information pertaining to each transfer as it occurs. There are four kinds of headers:
- General
- This holds information about the client (user), the server itself and the protocol being used (like http or ftp).
- Entity
- This holds information about the data that is being transferred.
- Request
- This holds information about the allowable formats and parameters for the transfer.
- Response
- This is sent out by the server at the end of a transfer, and includes detailed information, in code form, on the outcome of the transfer.
The Response Codes
As a web surfer you've probably become familiar with the dreaded 404 error message (and possibly made your own), which signifies a ‘page not found’ error. That's the most well-known server response code, but there are many more. These numerical codes are grouped — the low numbers are generally ‘good’, and operate silently, while anything over 400 is definitely bad news and will be reported to the user in the form of an error message.
Code | Explanation |
---|---|
100-199 | Silent Response Codes that signify that a request has been received and is currently being processed. |
100 | The request has been completed and the rest of the process can continue. |
101 | The user's request to switch protocols (like from FTP to HTTP) was accepted. |
200-299 | Silent codes that confirm that requests have completed successfully. |
200 | Ok — the file which the client requested is available for transfer. This is the response code you want to see all of your users receiving. |
201 | When new pages are created by posted form data or by a CGI process, this is confirmation that it worked. |
202 | The client's request was accepted, though not yet processed. |
203 | The information contained in the entity header is not from the original site, but from a third party server. |
204 | If you click a link which has no target URL, this response is elicited by the server. It's silent and doesn't warn the user about anything. |
205 | This allows the server to reset any content returned by a CGI. |
206 | Partial content — the requested file wasn't downloaded entirely. This is returned when the user presses the stop button before a page is loaded, for example. |
300-399 | A redirection is occurring from the original request. |
300 | The requested address refers to more than one file. Depending on how the server is configured, you get an error or a choice of which page you want. |
301 | Moved Permanently — if the server is set up properly it will automatically redirect the reader to the new location of the file. |
302 | Found — page has been moved temporarily, and the new URL is available. You should be sent there by the server. |
303 | This is a "see other" SRC. Data is somewhere else and the GET method is used to retrieve it. |
304 | Not Modified — if the request header includes an 'if modified since' parameter, this code will be returned if the file has not changed since that date. Search engine robots may generate a lot of these. |
400-499 | Request is incomplete for some reason. |
400 | Bad Request — there is a syntax error in the request, and it is denied. |
401 | The request header did not contain the necessary authentication codes, and the client is denied access. |
402 | Payment is required. This code is not yet in operation. |
403 | Forbidden — the client is not allowed to see a certain file. This is also returned at times when the server doesn't want any more visitors. |
404 | Document not found — the requested file was not found on the server. Possibly because it was deleted, or never existed before. Often caused by misspellings of URLs. |
405 | The method you are using to access the file is not allowed. |
406 | The requested file exists but cannot be used as the client system doesn't understand the format the file is configured for. |
407 | The request must be authorised before it can take place. |
408 | Request Timeout — the server took longer than its allowed time to process the request. Often caused by heavy net traffic. |
409 | Too many concurrent requests for a single file. |
410 | The file used to be in this position, but is there no longer. |
411 | The request is missing its Content-Length header. |
412 | A certain configuration is required for this file to be delivered, but the client has not set this up. |
413 | The requested file was too big to process. |
414 | The address you entered was overly long for the server. |
415 | The filetype of the request is unsupported. |
500-599 | Errors have occurred in the server itself. |
500 | Internal Server Error — nasty response that is usually caused by a problem in your Perl code when a CGI program is run. |
501 | The request cannot be carried out by the server. |
502 | Bad Gateway — the server you're trying to reach is sending back errors. |
503 | Temporarily Unavailable — the service or file that is being requested is not currently available. |
504 | The gateway has timed out. Like the 408 timeout error, but this one occurs at the gateway of the server. |
505 | The HTTP protocol you are asking for is not supported. |