HTTP status codes
Column 1 100 Continue This status code indicates that the initial part of a request has been received and the server is waiting for the client to send additional information. It is typically used in response to an HTTP 1.1 Upgrade header indicating that the client wishes to switch protocols. 101 Switching Protocols - The server understands and is willing to comply with the client's upgrade request. - Used in response to an Upgrade header from the client, indicating that it should switch protocols. - After receiving this status code, the client can send a new request using a different protocol. 102 Processing - Indicates that the server has received and is processing the request, but no response is available yet. - This status code can be used to prevent a client from timing out while waiting for a long-running process to complete on the server. - The 102 status code should only be sent when there are ongoing operations. 103 Early Hints This status code is an informational response indicating that the server is still processing the request. It is typically used in a multi-step process where further action or input from the client may be required. The client should continue to send requests with this expectation until it receives a different status code. 300 Multiple Choices - The requested resource has multiple choices available, each with its own URI and response. - The client can select one of the options using a GET request or specify their preference in the 'Accept' header field. - This status code is typically used when there are different versions or formats of a resource available. 301 Moved Permanently The HTTP status code '301' indicates a permanent redirect. It is used when the requested resource has been permanently moved to a new location. The client should update its bookmarks or links as necessary, and future requests should be made to the new URL provided in the response. 302 Found (Previously "Moved Temporarily") The HTTP status code '302 Found' is a temporary redirect. It indicates that the requested resource has been temporarily moved to a different URL. The client should continue making future requests to the new URL provided in the response's Location header field. This status code is commonly used for implementing website maintenance or when content needs to be served from a different location temporarily. 303 See Other - Indicates that the requested resource can be found at a different URI. - The client should make a new request to the provided URI. - This status code is often used in response to POST requests, where redirecting helps prevent duplicate form submissions. 304 Not Modified The 304 status code indicates that the client's cached version of a resource is still valid and can be used. It means that the requested resource has not been modified since it was last accessed or cached by the client. This allows servers to save bandwidth by indicating that there have been no changes, and clients can use their locally stored copy instead of downloading again. 305 Use Proxy - The requested resource must be accessed through the proxy specified in the Location header. - This status code is primarily used to redirect clients to an intermediary server, such as a caching or load-balancing server. 306 Switch Proxy (not used) The 306 status code was used in a previous version of the HTTP protocol but is no longer used. It indicated that the requested resource should be accessed through a different URI using the GET method, with an optional Location header field specifying where to redirect. 307 Temporary Redirect 1. The 307 status code indicates that the requested resource has been temporarily moved to a different URL. 2. Unlike a 301 redirect, which is permanent, the client should continue using the original request method for future requests to this new URL. 3. This can be useful when you want to redirect users without changing their HTTP method (e.g., POST) or losing any data in transit. 4. It's important for clients and search engines to handle temporary redirects correctly as they may affect indexing and caching of pages. 308 Permanent Redirect - Indicates that the target resource has been assigned a new permanent URI. - The client should update its bookmarks and references to use the new URL in future requests. - Unlike other redirect status codes, this code indicates that no further action is necessary on the part of the client. 500 Internal Server Error - The server encountered an unexpected condition that prevented it from fulfilling the request. - This status code is a generic error message, indicating something went wrong on the server's end and it was unable to handle the request properly. - It can be caused by various factors such as misconfiguration, programming errors, or resource limitations. - When encountering this status code, users should contact the website administrator for further assistance. 501 Not Implemented The server does not support the functionality required to fulfill the request. This is typically a temporary condition and can occur when a new feature or service is being developed. The client should try again in the future, as it may become available at a later time. 502 Bad Gateway The 502 status code indicates that a server acting as a gateway or proxy received an invalid response from an upstream server. It typically occurs when the upstream server is temporarily unavailable, overloaded, or experiencing issues. This error can also occur if there are DNS resolution problems between servers. Troubleshooting steps include checking network connections, verifying DNS settings, and contacting the website administrator for assistance. 503 Service Unavailable The server is currently unable to handle the request due to a temporary overload or maintenance. This status code indicates that the server is temporarily unavailable and cannot process the client's request at this time. It may be overloaded, undergoing maintenance, or experiencing other issues. The client should retry their request later when the server might become available again. 504 Gateway Timeout The 504 status code indicates that the server acting as a gateway or proxy did not receive a timely response from an upstream server. This can occur when there is high traffic on the upstream servers, network issues, or if the request takes too long to process. It usually means that there was no valid response within the timeout period set by the server. 505 HTTP Version Not Supported The server does not support the HTTP protocol version used in the request. This status code is typically sent when a client uses an outdated or unsupported version of HTTP. To resolve this issue, the client should update its software to use a supported version of HTTP. It may also be necessary for the server administrator to upgrade their server software to support newer versions of HTTP. 506 Variant Also Negotiates The server has an internal configuration error: the chosen variant resource is configured to engage in transparent content negotiation itself, and therefore isn't a proper end point in the negotiation process. 507 Insufficient Storage The 507 status code indicates that the server is unable to store the representation needed to complete the request. This can occur when there is not enough free space on the server's storage device or if allocating more storage would exceed a predefined limit. The client may need to remove some data or make use of alternative storage options before retrying their request. 508 Loop Detected The HTTP status code '508' is a variant also known as 'Loop Detected'. It indicates that the server detected an infinite loop while processing the request. This typically occurs when a recursive algorithm or redirect loops are encountered in the server's logic. To resolve this issue, it is necessary to review and correct any faulty programming logic causing the loop. 510 Not Extended The policy for accessing the requested resource has not been met in the server. This status code is typically used when a client needs to extend its capabilities but hasn't done so. 511 Network Authentication Required The 511 status code indicates that the client needs to authenticate itself to gain network access. It is similar to a 401 Unauthorized response, but specifically related to network authentication rather than user authentication. This status code can be used by captive portals or other intermediary devices requiring users' credentials before granting internet access. The server may include additional information in the response body explaining how and where clients should provide their credentials. Column 2 200 OK The HTTP status code 200 indicates a successful request. It means that the server has successfully processed the client's request and is returning the requested resource or information. This status code is commonly used for GET requests, indicating that the response contains the requested data. Additionally, it can also be used for POST requests to indicate a successful creation of a new resource on the server. 201 Created The HTTP status code 201 indicates that a request has been successfully fulfilled and a new resource has been created as a result. It is typically used in response to POST requests, indicating the successful creation of an entity on the server. The Location header field should be included in the response, specifying the URL of the newly created resource for further reference or interaction. This status code signifies that everything went well with creating a new resource. 202 Accepted The 202 status code indicates that the request has been accepted for processing, but it is not yet complete. It may be used when a server needs more time to process the request or if there are dependencies on other actions being completed first. The client can continue to periodically check the status of the request using another endpoint or by including an identifier in subsequent requests. 203 Non-Authoritative Information The 203 status code is used to indicate that the response received by the client comes from a source other than the original server. It means that while processing the request, an intermediary or proxy has modified or transformed it in some way before returning it back to the client. This can be useful for caching purposes and reducing network traffic between clients and servers. 204 No Content The server successfully processed the request, but there is no content to return. This status code is typically used for DELETE and PUT requests where the response does not include a representation of the deleted or updated resource. It can also be used as a successful response for POST requests that result in an empty response body. 205 Reset Content The server has fulfilled the request and requires that the user agent reset or reload the current document. This status code is typically used after performing actions like submitting a form, where it indicates to clear out any input fields and display an empty page. It does not require additional action from the client. 206 Partial Content The server successfully fulfills a partial GET request. The response includes only the requested range of data, specified by the Range header field. This status code is typically used for resumable downloads or when requesting large files in chunks. 207 Multi-Status The HTTP status code '207' indicates that the response is a multi-status message, providing multiple independent responses for different parts of the requested resource. It can be used in WebDAV protocols to indicate various statuses related to individual sub-requests within the overall request. The server should include an XML or JSON body with information about each separate status and its corresponding description. 208 Already Reported The server has fulfilled the request and there is additional information available. This status code allows the client to retrieve meta-information about a response without having to send another request. It is typically used in conjunction with a Link header or an Alternates header, which provides links that may be followed by the user agent. 226 IM Used The server has fulfilled a GET request for the resource, and the response is a representation of the result. The representation may contain multiple entities that are individually identified with separate URIs in one message body or as part of multipart media type. This status code allows an origin server to indicate that it has successfully applied content negotiation. 400 Bad Request The HTTP status code '400 Bad Request' indicates that the server cannot process the client's request due to malformed syntax or invalid parameters. It is typically used when there are missing or incorrect input data, unsupported content types, or unauthorized requests. The client should review and modify their request before resubmitting it. 401 Unauthorized The HTTP status code '401' indicates that the client must authenticate itself to get the requested response. It is typically used when access to a resource requires valid credentials, but either no credentials were provided or the provided ones are invalid. The server may include additional information in its response body explaining why authentication failed. 402 Payment Required The 402 status code is a non-standard HTTP response that indicates the client must pay to access the requested resource. It was originally intended for use with digital payment systems, but it has not been widely adopted. This status code serves as a reminder or notification to users that they need to make a payment before accessing the content or service. If you encounter this status code, check if there are any instructions provided on how and where to make the required payment. 403 Forbidden The 403 status code indicates that the server understood the request, but is refusing to fulfill it. This could be due to insufficient permissions or authentication issues. The client should not repeat the request without modifications. 404 Not Found The HTTP status code 404 indicates that the requested resource could not be found on the server. It is commonly referred to as 'Not Found'. This error can occur due to various reasons such as a mistyped URL, deleted or moved content, or an issue with server configuration. When encountering a 404 error, it's important to check for any typos in the URL and ensure that the requested resource exists at its specified location. 405 Method Not Allowed The server recognizes the request method used by the client, but it is not allowed for the requested resource. This status code indicates that the HTTP method (e.g., GET, POST) sent in the request is not supported or permitted for this particular endpoint. It may be necessary to check if a different HTTP method should be used or verify permissions and access rights. 406 Not Acceptable The 406 status code indicates that the server cannot produce a response matching the list of acceptable values defined in the request's headers. This typically occurs when there is an issue with content negotiation, where the client requests specific media types or languages but none are available from the server. To resolve this error, either modify your request to include acceptable values or check if alternative representations are available. 407 Proxy Authentication Required The 407 status code indicates that the client must authenticate itself with a proxy server before making further requests. This is similar to a 401 Unauthorized response, but it specifically refers to authentication for accessing proxies rather than the requested resource directly. The client should include an appropriate `Proxy-Authorization` header in subsequent requests to successfully complete the authentication process and access the desired resource through the proxy server. 408 Request Timeout The 408 status code indicates that the server did not receive a complete request from the client within the time period it was prepared to wait. This can happen if there are network issues or if the client takes too long to send all necessary data for processing. It is important for clients to ensure timely and complete transmission of requests, and servers may include additional information in response headers indicating how long they are willing to wait before timing out. 409 Conflict The 409 status code indicates that the request could not be completed due to a conflict with the current state of the target resource. This typically occurs when there is a versioning or concurrency issue, where multiple clients are attempting to modify the same resource simultaneously. The client should resolve this conflict by either modifying their request or contacting the server administrator for further assistance. 410 Gone The 410 status code indicates that the requested resource is no longer available and will not be accessible again. It differs from a 404 error, which means the server cannot find the requested resource but it may become available in the future. The client should update its bookmarks or remove references to this URL as it won't work anymore. This status code can also be used when content has been intentionally removed by website administrators. 411 Length Required The HTTP 411 Length Required status code indicates that the server refuses to accept the request without a valid Content-Length header. This typically occurs when making POST or PUT requests where the content length is required for processing. To resolve this error, ensure you include a valid Content-Length header with an appropriate value in your request headers. 412 Precondition Failed The server does not meet the preconditions specified in the request headers. This status code is typically used when a client sends conditional header fields, such as If-Match or If-None-Match, and those conditions are not met by the server. It indicates that further action needs to be taken by the client before making another request. 413 Payload Too Large The server is refusing to process the request because the payload size exceeds its limitations. This typically occurs when attempting to upload a file or send data that surpasses the maximum allowed size. To resolve this, you can either reduce the payload size by compressing or optimizing your content, or adjust server configurations to accommodate larger payloads if necessary. 414 URI Too Long The server is refusing to service the request because the requested URI (Uniform Resource Identifier) is too long. This typically occurs when a client sends a GET request with a URL that exceeds the maximum length allowed by the server. To resolve this issue, clients can try shortening or truncating the URL, using POST instead of GET for large data payloads, or utilizing other methods like sending parameters in headers. 415 Unsupported Media Type The server refuses to accept the request because the media type of the requested resource is not supported. This typically occurs when a client sends data in an unsupported format or without specifying a valid Content-Type header. To resolve this, ensure that you are sending data in a supported format and include the appropriate Content-Type header with your request. 416 Range Not Satisfiable The server cannot fulfill the partial GET request because it is outside of the range specified in the 'Range' header field. This status code is typically returned when a client requests a specific portion of a file, but that portion does not exist or is invalid. The client can modify its request to include valid ranges and try again. 417 Expectation Failed The 417 status code indicates that the server cannot meet the requirements specified in the client's 'Expect' header field. This typically occurs when a request expects certain conditions to be met by the server, but those conditions are not fulfilled. The response may include an explanation or suggestions for alternative actions. 418 I'm a teapot The HTTP status code 418 is an April Fools' joke created by the Hyper Text Coffee Pot Control Protocol (HTCPCP) in 1998. It indicates that the server refuses to brew coffee because it is, in fact, a teapot and not capable of brewing coffee. This status code serves as a humorous reminder that servers can return any valid HTTP response codes. 421 Misdirected Request The server is unable to process the request due to a misdirected client. This status code indicates that the request was sent to a server that is not able or willing to respond, and instead should be retried on another appropriate server. It can occur when there are issues with DNS configuration or load balancing. 422 Unprocessable Entity The 422 status code is used to indicate that the server understands the content type of the request, but was unable to process it. This can occur when there are validation errors or missing required fields in a form submission. The response body may contain more specific information about what went wrong and how to fix it. 423 Locked The HTTP status code '423' indicates that the resource being accessed is locked and cannot be accessed at the moment. This typically occurs when a user tries to access a resource that has been temporarily or permanently locked by an administrator or another process. The client should retry the request after some time, as specified in the response's 'Retry-After' header if provided. It is important for clients to respect this lock and not attempt unauthorized access. 424 Failed Dependency The server failed to perform the request because it relies on another action that has not yet been completed. This status code is typically used in WebDAV applications where a previous operation must be completed before the current one can proceed. The client should retry or wait for the dependent action to finish. 425 Too Early The HTTP 425 status code indicates that the server is unwilling to risk processing a request before it has received more information. This status code may be used in early-stage protocols where the client needs to send additional data or complete authentication before proceeding with the request. It informs the client that it should retry sending its request at a later time, after fulfilling certain conditions specified by the server. 426 Upgrade Required The HTTP status code '426' indicates that the client should switch to a different protocol, such as upgrading from HTTP/1.1 to WebSocket. This response is typically used when the server requires an upgrade in order for the request to be fulfilled successfully. The client can then make another request using the upgraded protocol specified by the server. 428 Precondition Required The 428 status code indicates that the server requires the request to be conditional. It is typically used when a client needs to include certain conditions in their request headers, such as an 'If-Match' or 'If-None-Match' header, for successful processing of the request. This status code helps prevent data loss and conflicts by ensuring that requests are made with appropriate preconditions met. 429 Too Many Requests The 429 status code indicates that the user has sent too many requests in a given amount of time. It is often used to protect against abuse or spamming by limiting the number of requests allowed per client. The response may include information on how long the user should wait before making another request (via 'Retry-After' header). This status code falls under the category of server errors (5xx) and can be encountered when accessing APIs, web services, or websites with rate limits. 431 Request Header Fields Too Large The server is unwilling to process the request because its header fields are too large. The client should reduce the size of the request headers before resubmitting. - This status code helps prevent denial-of-service attacks by limiting excessive use of resources due to oversized headers. - It can occur when a user agent sends an HTTP request with header fields that exceed server limitations or configured thresholds. - To resolve this, clients need to modify their requests and ensure they comply with server limits. 451 Unavailable For Legal Reasons This indicates that the server refuses to fulfill the request due to legal reasons, such as censorship or government-mandated blocking of content. This status code was introduced in response to various internet censorship efforts around the world and serves as a reminder of free speech rights online. |