HTTP Error Code explanation & nginx custom errors

Source: Internet
Author: User
Tags unsupported

If you send a request to your server to display a webpage on your website (for example, when a user accesses your webpage through a browser or crawls the webpage on googlebot, your server returns the HTTP status code to respond to the request.

This status code provides information about the request status and provides googlebot with information about your website and the requested webpage.

Some common status codes are as follows:

200-The server returns the webpage successfully.404-The requested webpage does not exist.503-The server is temporarily unavailable. The following provides a complete list of HTTP status codes. Click the link to learn more. You can also access
For more information, see the W3C page of the HTTP status code.

1xx (temporary response)

The status code that indicates a temporary response and requires the requester to perform the operation to continue.


100 (continue) The requester shall continue to make the request. The server returns this code, which means that the server has received the first part of the request and is waiting to receive the remaining part.
101 (switching Protocol) The requester has requested the server switching protocol, and the server has confirmed and is ready to switch.

2XX (successful)

The status code indicating that the server has successfully processed the request.


200 (successful) The server has successfully processed the request. Generally, this indicates that the server provides the requested webpage. If your robots.txt file is in this status, this indicates that googlebot has successfully retrieved the file.
201 (created) The request is successful and the server has created a new resource.
202 (accepted) The server has accepted the request but has not processed it.
203 (unauthorized information) The server has successfully processed the request, but returns information that may come from another source.
204 (NO content) The server successfully processes the request but does not return any content.
205 (reset content) The server successfully processes the request but does not return any content. Unlike the 204 response, this response requires the requester to reset the document view (for example, clear the form content to enter new content ).
206 (partial content) The server successfully processes some GET requests.

3xx (redirected)

To complete the request, you must perform further operations. These status codes are usually always redirected. Google recommends that you use fewer than five redirection entries for each request. You can use the website administrator tool to check if googlebot encounters any problems when crawling your redirected webpage. DiagnosisThe capture error page below lists
A URL that cannot be crawled by googlebot due to a redirection error.


300 (multiple options) The server can perform multiple operations based on the request. The server selects an operation based on the user agent or provides an operation list for the user agent to select.
301 (permanent movement) The requested webpage has been permanently moved to a new location. When the server returns this response (as a response to a get or head request), it automatically redirects the requester to a new location. You should use this code to notify googlebot that a webpage or website has been permanently moved to a new location.
302 (temporary movement) The server is currently responding to requests from different web pages, but the requester should continue to use the original location for future requests. Similar to code 301 In response to get and head requests, this code automatically redirects the requester to different locations. However, because googlebot continues to capture the original location and indexed it, you should not use this code to notify googlebot that a page or website has been moved.
303 (view other locations) The server returns this code when the requester must perform separate GET requests at different locations to retrieve the response. For all requests except HEAD requests, the server automatically redirects to other locations.
304 (not modified) The requested webpage has not been modified since the last request. When the server returns this response, no webpage content is returned. If the web page has not been changed since the last request, you should Configure the server to return this response (known as the IF-modified-since HTTP header ). The server can tell googlebot that the webpage has not been changed since the previous capture, thus saving bandwidth and overhead.
305 (use proxy) The requester can only use a proxy to access the requested webpage. If the server returns this response, the server also specifies the proxy that the requester should use.
307 (temporary redirection) The server is currently responding to requests from different web pages, but the requester should continue to use the original location for future requests. Similar to code 301 In response to get and head requests, this code automatically redirects the requester to different locations. However, because googlebot continues to capture the original location and indexed it, you should not use this code to notify googlebot that a page or website has been moved.

4xx (request error)

These status codes indicate that the request may fail and the server may be unable to process the request.


400 (incorrect request) The server does not understand the request syntax.
401 (unauthorized) The request requires authentication. After logon, the server may return this response to the page.
403 (Forbidden) The server rejects the request. If this status code is displayed when googlebot tries to capture a valid webpage on your website (you can go to the Google website administrator toolDiagnosisUnderNetwork captureThis status code is displayed on the page). This may be because your server or host rejects googlebot access to it.
404 (not found) The server cannot find the requested webpage. For example, if the request is for a webpage that does not exist on the server, the server usually returns this code. If the robots.txt file does not exist on your website and you find this status on the robots.txt page of the Google website administrator tool "Diagnostics" tab, this is the correct status. However, if you have
The robots.txt file is in this status again, which indicates that your robots.txt file may be named incorrectly or be in the wrong location. (The file should be on a top-level domain name and be named robots.txt ). If you find this status (on the HTTP Error page of the "diagnosis" tab) on the URL that googlebot is trying to crawl, this indicates that googlebot may be tracking invalid links in another webpage (old links or incorrect links ).
405 (method disabled) Disable the method specified in the request.
406 (not accepted) You cannot use the Content features of the request to respond to the requested webpage.
407 (proxy authorization required) This status code is similar to 401 (unauthorized), but specifies that the requester should use a proxy for authorization. If the server returns this response, the server also specifies the proxy that the requester should use.
408 (request timeout) The server timed out while waiting for the request.
409 (conflict) A conflict occurs when the server completes the request. The server must contain information about conflicts in the response. The server may return this code when responding to a put request that conflicts with the previous request, and provides a list of differences between the two requests.
410 (Deleted) If the requested resource has been permanently deleted, the server returns this response. This code is similar to the 404 (not found) code, but sometimes it may replace the 404 code when the resource exists but does not exist now. If the resource has been permanently deleted, you should use code 301 to specify a new location for the resource.
411 (valid length required) The server will not accept requests that contain invalid Content Length header fields.
412 (not meeting the prerequisites) The server does not meet one of the prerequisites set by the requester in the request.
413 (the Request Entity is too large) The server cannot process the request because the request entity is too large and exceeds the server's processing capability.
414 (the requested URI is too long) The request URI (usually the URL) is too long and cannot be processed by the server.
415 (unsupported media type) The request format is not supported by the request page.
416 (the request range does not meet the requirements) If the request is for an invalid webpage range, the server returns this status code.
417 (expectations not met) The server does not meet the "expected" request header field requirements.

5xx (server error)

These status codes indicate that an internal error occurs when the server attempts to process the request. These errors may be server errors rather than request errors.


500 (internal server error) The request cannot be completed due to a server error.
501 (not implemented) The server does not have the function to complete the request. For example, if the server cannot identify the request method, the server may return this code.
502 (incorrect gateway) The gateway or proxy server receives an invalid response from the upstream server.
503 (Service unavailable) Currently, servers cannot be used (due to overload or downtime maintenance ). This is usually a temporary state.
504 (gateway timeout) As a gateway or proxy, the server does not receive requests from the upstream server in a timely manner.
505 (unsupported HTTP Version) The server does not support the HTTP protocol version used in the request.

Thoughts on nginx 499 errors ~~

 

The nginx log error message is as follows:

? [Copy
To clipboard] view code log
58.212.81.150--[21/OCT/2010: 03: 58: 12-0500] "Get/attachment/View/32807_120x120.jpg HTTP/1.1" 499 0 "http://www.theledlamps.com/" "Mozilla/5.0 (windows; U; Windows NT 5.1; ZH-CN; RV: 1.9.2.11) Gecko/20101012 Firefox/3.6.11"

Rfc2616, 400 ~ The error codes of the 500 error codes are only defined as 417, so 499 should be defined by nginx. Later, I thought of reading nginx code to raise my question.

Enter the nginx compilation directory and enter the following command:

View Source code printing help
1 [Root @ system nginx-0.7.67] # grep 499.-R

The following information is displayed:

? [Copy
To clipboard] view code bash
./Changes: with499 status code.
./Changes :*)
Change: Now the499 error cocould not be redirected using an./src/HTTP/ngx_http_special_response.c:
Ngx_null_string,/* 499, client has closed connection */
./Src/HTTP/ngx_http_request.h: # define
Ngx_http_client_closed_request 499./src/HTTP/ngx_http_core_module.c: If (ERR-> Status
==Ngx_error | err-> Status = 499 ){
./Changes.ru :*)
Please refer to the following link for more information: 499. Please refer to the following link for more information:

View the/src/HTTP/ngx_http_special_response.c file based on the information found, which defines a lot of HTTP Error Codes and corresponding responses. Note the following annotations.

? [Copy
To clipboard] view code C

Ngx_string (ngx_http_error_495_page ),/*
495, https certificate Error */

Ngx_string (ngx_http_error_496_page ),/*
496, https no certificate */

Ngx_string (ngx_http_error_497_page ),/*
497, HTTP to HTTPS */

Ngx_string (ngx_http_error_404_page ),/*
498, canceled */

Ngx_null_string,/* 499, client has closed connection */

As you can see, 499 corresponds to "client has closed connection ". This is probably because the processing time on the server side is too long and the client is "impatient. To solve this problem, you need to optimize the program.

In addition to 499, nginx also defines the status codes 495/496/497/498. The meanings of these codes are also shown in the preceding annotations. It is great to view the source code at any time for open source.

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.