HTTP status code)

Source: Internet
Author: User
Tags rfc
HTTP status code)

Different HTTP statuses are used when ASP. NET/PHP/jsp or Javascript is used. Some common status codes are as follows:
200-the server returns the webpage 404 successfully. The requested webpage does not exist. 503-the service is unavailable.
1xx (temporary response)
Status Code indicating a temporary response and requiring the requester to continue the operation.

Code Description
100 (CONTINUE) the requester shall continue to make the request. The server returns this code, indicating that the first part of the request has been received and is waiting for the remaining part.
101 (switching protocol) the requester has requested the server switching protocol. The server has confirmed and is ready to switch.

2XX (successful)
Indicates that the request status code is successfully processed.

Code Description
200 (successful) the server has successfully processed the request. Generally, this indicates that the server provides the requested webpage.
The 201 (created) request is successful and the server creates a new resource.
202 (accepted) the server has accepted the request but has not yet processed it.
203 (unauthorized information) the server has successfully processed the request, but the returned information may come from another source.
204 (NO content) The server successfully processed the request, but did not return any content.
205 (reset content) The server successfully processed the request, but did not return any content.
206 (partial content) The server successfully processes some GET requests.

3xx (redirection)
Indicates that further operations are required to complete the request. These status codes are usually used for redirection.

Code Description
300 (multiple options) for requests, the server can perform multiple operations. The server selects an operation based on the user agent or provides an operation list for the user agent to select.
The webpage of the 301 (permanent mobile) request has been permanently moved to a new location. When the server returns this response (response to a get or head request), it automatically redirects the requester to a new location.
The 302 (temporary mobile) server currently responds to requests from different locations, but the requester should continue to use the original location for subsequent requests.
303 (view other locations) when the requester uses a separate GET request for different locations to retrieve the response, the server returns this code.
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.
305 (using a proxy) the requester can only use a proxy to access the requested webpage. If the server returns this response, it also indicates that the requester should use a proxy.
307 (temporary redirection) The server currently responds to requests from different locations, but the requester should continue to use the original location for subsequent requests.

4xx (request error)
These status codes indicate that the request may fail and impede server processing.

Code Description
400 (incorrect request) the server does not understand the request syntax.
401 (unauthorized) requests require authentication. The server may return this response for webpages that require logon.
403 (Forbidden) The server rejects the request.
404 (not found) The server cannot find the requested webpage.
405 (method disabled) disable the method specified in the request.
406 (unacceptable) unable to respond to the requested webpage using the requested content features.
407 (proxy authorization required) this status code is similar to 401 (unauthorized), but the specified requester should authorize the use of proxy.
408 (request timeout) timeout occurred when the server waited for the request.
409 conflict occurs when the server completes the request. The server must contain conflict information in the response.
410 (Deleted) If the requested resource has been permanently deleted, the server returns this response.
The 411 (valid length required) server does not accept requests that do not contain valid 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 page cannot provide the request range, the server returns this status code.
417 (not meeting the expected value) the server does not meet the "expected" request header field requirements.

5xx (server error)
These status codes indicate an internal error occurred when the server attempted to process the request. These errors may be server errors rather than request errors.

Code Description
500 (internal server error) The server encounters an error and cannot complete the request.
501 (not implemented) the server does not have the function to complete the request. For example, this Code may be returned when the server cannot identify the request method.
The 502 (error gateway) server acts as a gateway or proxy and receives an invalid response from the upstream server.
503 (Service unavailable) servers are currently unavailable (due to overload or downtime maintenance ). Generally, this is only a temporary status.
504 (gateway timeout) The server acts as a gateway or proxy, but does not receive a request from the upstream server in time.
505 (HTTP Version Not Supported) the server does not support the HTTP protocol version used in the request.

 

RFC 6585 has just been released. This document describes four new HTTP status codes.

Is the HTTP protocol still changing? Yes, the HTTP protocol has been evolving. The new status code is very useful for developing rest services or HTTP-based services, the following describes in detail the four new status codes and whether they should be used.

428 precondition required (prerequisite required)

A prerequisite is that when the client sends an HTTP request, some Preset conditions must be met if the request is successful.

A good example is the IF-None-match header, which is often used in GET requests. If if-None-match is specified, then the client will receive the response again only after the etag in the response changes.

Another example of the prerequisite is the IF-match header, which is generally used on put requests to indicate that only resources that have not been changed are updated, this is used when multiple clients use the HTTP service to prevent the same content from being overwritten by each other.

When the server uses the 428 precondition required status code, it indicates that the client must send the above request header to execute the request, this method provides an effective method for the server to prevent the 'lost Update' problem.

429 too required requests (too many requests)

This status code is useful when you need to limit the number of services requested by the client, that is, the request speed limit.

Before that, there were some similar status codes, such as '509 bandwidth limit exceeded'. Twitter used 420 (this is not the status code defined by HTTP)

If you want to limit the number of client requests to the service, you can use the 429 status code and contain a retry-after response header to tell the client how long it will take to request the service again.

431 request header fields too large (the request header field is too large)

In some cases, when the client sends an HTTP request header, the server can send the 431 request header fields too large to indicate the problem.

I don't know why I didn't have a 430 status code. Instead, I jumped from 429 to 431. I tried to search but there was no result. The only guess is that 430 forbidden and 403 forbidden are too similar. They do this to avoid confusion. God knows!

511 Network Authentication required (Network Authentication required)

This status code is very interesting for me. If you are developing an HTTP server, you do not have to handle this status code, but if you are writing an HTTP client, this status code is very important.

If you frequently use laptops and smartphones, you may notice that a large number of public WiFi services require you to accept certain protocols or log on before using them.

This is because HTTP traffic is intercepted. when a user attempts to access the network and returns a redirection and logon, this is annoying, but the actual situation is as follows.

Using these "blocking" clients has some annoying side effects. These two examples are mentioned in RFC:

  • If you access a website before you log on to wifi, the network device will block the first request. These devices often have their own website icon 'favicon. ICO '. After logging on, you will find that the website icon you visit for a period of time has always been the icon of the WiFi login website.
  • If the client uses an HTTP request to find the document (which may be JSON), the Network will respond to a logon page, so that your client will parse the error and cause the client to run abnormally, in reality, this problem is very common.

Therefore, the 511 status code is proposed to solve this problem.

If you are writing an HTTP client, you 'd better check the 511 status code to confirm whether authentication is required before access.

Original ENGLISH

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.