If you have ever copied a link from your browser and noticed that
http://
or https://
had been added before the domain, you are looking at the protocol used which defines how messages are formatted and transmitted. It also defines how web servers and browsers should respond to various commands.The 1xx HTTP status codes are the informational requests that indicate that the server received and understood the request, but it needs a little longer to process the information. They include the '100 Continue', '101 Switching Protocol', and '102 Processing HTTP status codes.' The 2xx HTTP status codes are the successful requests. Discover the comprehensive cheat sheet of HTTP status codes for SEO with explaining of each of them: 1xx informational responses, 2xx success, 3xx redirection, 4xx client errors, 5xx server errors. Use HTTP Status Code Checker to verify a specific URL. A generic error message, given when no more specific message is suitable. This is the HTTP Response Status Codes Table Cheat Sheet.Included in this post are the known Hypertext Transfer Protocol (HTTP) response status codes. It also include the status codes from the IETF internet standards as well as other RFCs, specifications and other commonly used codes.
HTTP stands for HyperText Transfer Protocol and is used, or at least the variant HyperText Transfer Protocol Secure (HTTPS), for nearly every single website on the internet.
HTTP Codes
All HTTP response codes can be separated into five categories:
- 1xx informational response - the request has been received and continuing process
- 2xx successful - the request has been received, understood, and accepted
- 3xx redirection - further action is needed in order to complete the request
- 4xx client error - the request contains bad syntax or cannot be fulfilled
- 5xx server error - the server failed to fulfill the apparently valid request
1xx: Information
Message | Description |
100 Continue | The server has received the request headers and the client should proceed to send the request body providing that the request has been accepted. |
101 Switching Protocols | The requester has asked to switch protocols and the server has agreed. |
102 Processing | A WebDAV request may take a long time to process, since it involves file operations. This code is used to indicate that the server has received the request and is processing, but does not have a response yet. |
103 Early Hints | This code is used to return some response headers before the final HTTP message is sent. |
2xx: Success
Message | Description |
200 OK | This is the standard response for successful HTTP requests. Code 200 means everything is okay. |
201 Created | The fulfilled request resulted in the creation of a new resource. |
202 Accepted | The request has been accepted for processing, but has not completed processing. |
203 Non-Authoritative Information | The information contained in the entity header is from a local or third-party copy, not from the original. |
204 No Content | The server successfully processed the request, but is not returning any content. |
205 Reset Content | The requester should clear the form used for the transaction. |
206 Partial Content | The server is only delivering part of the resource due to a range header that was sent by the client. This range header is used by HTTP clients to enable resuming interrupted downloads or split downloads in multiple simultaneous streams. |
207 Multi Status | This code indicates that the following message body contains an XML message and can contain multiple separate response codes. |
208 Already Reported | The members of a DAV binding were already enumerated in a previous part of the response and thus, are not being included again |
226 IM Used | The server has fulfilled a request for the resource. The response is a representation of the result of one or more instance-manipulations that were applied to the instance. |
3xx Redirection
Http Status Codes Cheat Sheet Download
Message | Description |
300 Multiple Choices | A list of links, from which the requester can select one and go to it. For example, this code could be used to present multiple video formats. |
301 Moved Permanently | The requested page has been moved permanently to a new URL. |
302 Found | The request has been moved temporarily to a new URL. |
303 See Other | The response can be found under another URL. |
304 Not Modified | The response code to an If-Modified-Since or If-None-Match header where the URL has not been modified since the specified date. |
305 Use Proxy | The requested resource is only available through a proxy, whose address is provided in the response. This code is generally disobeyed for security reasons |
306 Unused | This code is currently unused, but was used for 'Switch Proxy'. |
307 Temporary Redirect | The requested page has temporarily moved to new URL. |
308 Permanent Redirect | The request should be repeated using another URL, but the HTTP method cannot change. |
4xx Client Errors
Message | Description |
400 Bad Request | There is an apparent client error and therefore the server cannot or will not process the request. |
401 Unauthorized | The requested page requires a username and password. |
402 Payment Required | This code is reserved for future use. Its original intention was to be used as a part of digital cash or micropayment system. |
403 Forbidden | The request was understood by the server, but the server will not take action. This may be due to the user not having necessary permissions. |
404 Not Found | The requested resource cannot be found. Most people know or have heard about this code. Most have even seen the error once or twice. |
405 Method Not Allowed | The method is not supported for the resource. For example performing a GET request on a form that uses POST. |
406 Not Acceptable | The server cannot generate a response that is accepted by the client. |
407 Proxy Authentication Required | You must first authenticate with the proxy. |
408 Request Timeout | The request took longer than the server was willingly to wait. |
409 Conflict | This code indicates that the request could not be processed because of conflict in the current state of the resource. |
410 Gone | The requested is no longer available. |
411 Length Required | The request did not specify the length of its content. The server cannot accept the request without it. |
412 Precondition Failed | The pre-condition that was given in the request evaluated to false by the server. |
413 Request Entity Too Large | Since the request entity is too large, the server will not accept the request. |
414 Request-url Too Long | The requested URL was too long for the server to process. |
415 Unsupported Media Type | The server will not accept the request since the mediatype is not supported. |
416 Request Range Not Satisfiable | The client has asked for a portion of the file, but the server cannot provide that portion. |
417 Expectation Failed | The server cannot meet the requirement given by the Expect request-header field. |
418 I'm a teapot | This code was introduced as an April Fools' joke. It is currently unexpected to be implemented by actual servers. |
421 Misdirected Request | The request was directed to a server that is not able to produce a response. |
422 Unprocessable Entity | The request was well-formed but the server was unable to follow due to semantic errors. |
423 Locked | The resource that is being accessed is locked. |
424 Failed Dependency | The request failed because the request it depended upon failed. |
425 Too Early | The server is unwilling to process a request that might be replayed later. |
426 Upgrade Required | The client should switch to a different protocol that is given in the Upgrade header field. |
428 Precondition Required | The origin server requires the client request to be conditional. |
429 Too Many Requests | The client has sent too many request in a given amount of time. |
431 Request Header Fields Too Large | The server refuses to process the client requests because the request's HTTP headers are too long. |
451 Unavailable for Legal Reasons | This indicates that the requested resource is not available due to legal reasons. |
5xx Server Errors
Message | Description |
500 Internal Server Error | This code indicates that the server experienced an unexpected condition which prevented it from fulfilling the request. |
501 Not Implemented | The server did not recognize the request method or is unable to fulfill the request. |
502 Bad Gateway | The server, while acting as either a gateway or proxy, has received an invalid response from the upstream server. |
503 Service Unavailable | The server cannot handle the request. |
504 Gateway Timeout | The server, while acting as either a gateway or proxy, did not receive a timely response from the upstream server. |
505 HTTP Version Not Supported | The client HTTP protocol version used in the request is not supported by the server. |
506 Variant Also Negotiates | The server encountered an internal configuration error in which the chosen variant is configured to engage in content negotiation. |
507 Insufficient Storage | This indicates that the server cannot perform the request as the server cannot store the representation needed to complete the request. |
508 Loop Detected | While processing the request, the server detected an infinite loop. |
510 Not Extended | The request needed further extensions for the server to fulfill it. |
511 Network Authentication Required | The client needs to authenticate to gain network access. This code is not sent by the origin server, however it is generated by intercepting proxies that control access to the network. |
HTTP unassigned codes
There are many HTTP codes that are unassigned. Some of them may be introduced in later revisions. Even with the limited amount of currently assigned codes, some people may never see many of these codes. Many end-users, however, may be familiar with 404 and 500 as they have an auto-generated error page.
HTTP codes are important to understand, especially if you are developing a web application and are trying to debug based upon the console responses. Knowing these codes came in handy while I was working on my website and forgot to allow methods through the function. This returned a 501 code, allowing me to easily find my mistake. Hopefully this guide of codes can help you!
About the author
Http Status Codes Cheat Sheet Template
Gregory ManleyGregory Manley is a sophomore at Colorado School of Mines where he is majoring in Computer Science with a minor in Mining Engineering. He is the owner of iTech News and a contributor for Section’s Engineering Education Content Program. His management of iTech News has led him to work with many brands on writing technology focus articles.
1xx Informational
The server has received the request headers, and that the client should proceed to send the request body. | |
The requester has asked the server to switch protocols and the server is acknowledging that it will do so. | |
The server has received and is processing the request, but no response is available yet. |
2xx Success
The standard response for successful HTTP requests. | |
The request has been fulfilled and a new resource has been created. | |
The request has been accepted but has not been processed yet. This code does not guarantee that the request will process successfully. | |
HTTP 1.1. The server successfully processed the request but is returning information from another source. | |
The server accepted the request but is not returning any content. This is often used as a response to a DELETE request. | |
Similar to a 204 No Content response but this response requires the requester to reset the document view. | |
The server is delivering only a portion of the content, as requested by the client via a range header. | |
The message body that follows is an XML message and can contain a number of separate response codes, depending on how many sub-requests were made. WebDAV - RFC 4918 | |
The members of a DAV binding have already been enumerated in a previous reply to this request, and are not being included again. WebDAV - RFC 5842 | |
The server has fulfilled a GET request for the resource, and the response is a representation of the result of one or more instance-manipulations applied to the current instance. |
3xx Redirection
There are multiple options that the client may follow. | |
The resource has been moved and all further requests should reference its new URI. | |
The HTTP 1.0 specification described this status as 'Moved Temporarily', but popular browsers respond to this status similar to behavior intended for 303 . The resource can be retrieved by referencing the returned URI. | |
The resource can be retrieved by following other URI using the GET method. When received in response to a POST , PUT , or DELETE , it can usually be assumed that the server processed the request successfully and is sending the client to an informational endpoint. | |
The resource has not been modified since the version specified in If-Modified-Since or If-Match headers. The resource will not be returned in response body. | |
HTTP 1.1. The resource is only available through a proxy and the address is provided in the response. | |
Deprecated in HTTP 1.1. Used to mean that subsequent requests should be sent using the specified proxy. | |
HTTP 1.1. The request should be repeated with the URI provided in the response, but future requests should still call the original URI. | |
Experimental. The request and all future requests should be repeated with the URI provided in the response. The HTTP method is not allowed to be changed in the subsequent request. | |
This code is used in the Resumable HTTP Requests Proposal to resume aborted PUT or POST requests |
Http Status Codes Cheat Sheet
4xx Client Error
Http Response Status Codes Cheat Sheet
The request could not be fulfilled due to the incorrect syntax of the request. | |
The requester is not authorized to access the resource. This is similar to 403 but is used in cases where authentication is expected but has failed or has not been provided. | |
Reserved for future use. Some web services use this as an indication that the client has sent an excessive number of requests. | |
The request was formatted correctly but the server is refusing to supply the requested resource. Unlike 401 , authenticating will not make a difference in the server's response. | |
The resource could not be found. This is often used as a catch-all for all invalid URIs requested of the server. | |
The resource was requested using a method that is not allowed. For example, requesting a resource via a POST method when the resource only supports the GET method. | |
The resource is valid, but cannot be provided in a format specified in the Accept headers in the request. | |
Authentication is required with the proxy before requests can be fulfilled. | |
The server timed out waiting for a request from the client. The client is allowed to repeat the request. | |
The request cannot be completed due to a conflict in the request parameters. | |
The resource is no longer available at the requested URI and no redirection will be given. | |
The request did not specify the length of its content as required by the resource. | |
The server does not meet one of the preconditions specified by the client. | |
The request is larger than what the server is able to process. | |
The URI provided in the request is too long for the server to process. This is often used when too much data has been encoded into the URI of a GET request and a POST request should be used instead. | |
The client provided data with a media type that the server does not support. | |
The client has asked for a portion of the resource but the server cannot supply that portion. | |
The server cannot meet the requirements of the Expect request-header field. | |
Any attempt to brew coffee with a teapot should result in the error code '418 I'm a teapot'. The resulting entity body MAY be short and stout. HTCPCP - RFC 2324 | |
The request was directed at a server that is not able to produce a response. This can be sent by a server that is not configured to produce responses for the combination of scheme and authority that are included in the request URI. HTTP/2 - RFC 7540 | |
The request was formatted correctly but cannot be processed in its current form. Often used when the specified parameters fail validation errors. WebDAV - RFC 4918 | |
The requested resource was found but has been locked and will not be returned. WebDAV - RFC 4918 | |
The request failed due to a failure of a previous request. WebDAV - RFC 4918 | |
The client should repeat the request using an upgraded protocol such as TLS 1.0. | |
The origin server requires the request to be conditional. Additional HTTP Status Codes - RFC 6585 | |
The user has sent too many requests in a given amount of time ('rate limiting'). Additional HTTP Status Codes - RFC 6585 | |
The server is unwilling to process the request because its header fields are too large. Additional HTTP Status Codes - RFC 6585 | |
A Microsoft extension. Indicates that your session has expired. | |
Used in Nginx logs to indicate that the server has returned no information to the client and closed the connection (useful as a deterrent for malware). | |
A Microsoft extension. The request should be retried after performing the appropriate action. | |
450 Blocked by Windows Parental Controls (Microsoft) A Microsoft extension. This error is given when Windows Parental Controls are turned on and are blocking access to the given webpage. | |
A server operator has received a legal demand to deny access to a resource or to a set of resources that includes the requested resource. The code 451 was chosen as a reference to the 1953 dystopian novel Fahrenheit 451, where books are outlawed. An HTTP Status Code to Report Legal Obstacles - RFC 7725 | |
Used in Exchange ActiveSync if there either is a more efficient server to use or the server cannot access the users' mailbox. | |
Nginx internal code similar to 431 but it was introduced earlier in version 0.9.4 (on January 21, 2011). | |
Nginx internal code used when SSL client certificate error occurred to distinguish it from 4XX in a log and an error page redirection. | |
Nginx internal code used when client didn't provide certificate to distinguish it from 4XX in a log and an error page redirection. | |
Nginx internal code used for the plain HTTP requests that are sent to HTTPS port to distinguish it from 4XX in a log and an error page redirection. | |
Returned by ArcGIS for Server. A code of 498 indicates an expired or otherwise invalid token. | |
Used in Nginx logs to indicate when the connection has been closed by client while the server is still processing its request, making server unable to send a status code back. | |
Returned by ArcGIS for Server. A code of 499 indicates that a token is required (if no token was submitted). |
5xx Server Error
Easy E M Cheat Sheet
A generic status for an error in the server itself. | |
The server cannot respond to the request. This usually implies that the server could possibly support the request in the future — otherwise a 4xx status may be more appropriate. | |
The server is acting as a proxy and did not receive an acceptable response from the upstream server. | |
The server is down and is not accepting requests. | |
The server is acting as a proxy and did not receive a response from the upstream server. | |
The server does not support the HTTP protocol version specified in the request. | |
Transparent content negotiation for the request results in a circular reference. | |
The user or server does not have sufficient storage quota to fulfill the request. WebDAV - RFC 4918 | |
The server detected an infinite loop in the request. WebDAV - RFC 5842 | |
509 Bandwidth Limit Exceeded (Apache bw/limited extension) This status code is not specified in any RFCs. Its use is unknown. | |
Further extensions to the request are necessary for it to be fulfilled. | |
The client must authenticate with the network before sending requests. | |
This status code is not specified in any RFC and is returned by certain services, for instance Microsoft Azure and CloudFlare servers: 'The 520 error is essentially a 'catch-all' response for when the origin server returns something unexpected or something that is not tolerated/interpreted (protocol violation or empty response).' | |
The origin server has refused the connection from CloudFlare. | |
CloudFlare could not negotiate a TCP handshake with the origin server. | |
CloudFlare could not reach the origin server; for example, if the DNS records for the origin server are incorrect. | |
CloudFlare was able to complete a TCP connection to the origin server, but did not receive a timely HTTP response. | |
CloudFlare could not negotiate a SSL/TLS handshake with the origin server. | |
CloudFlare could not validate the SSL/TLS certificate that the origin server presented. | |
The request timed out or failed after the WAN connection has been established. |
Httpstatuses
Notes
Http Status Codes Cheat Sheet Pdf
- Based on cheat.errtheblog.com and List of HTTP status codes on Wikipedia.