HTTP status codes
Broken links and their HTTP status codes can be found within the content quality reports in Insytful.
Understanding the HTTP status codes can help you diagnose and resolve issues effectively.
HTTP status codes and their meanings
HTTP responses are grouped into five areas which are:
- 100-199 are informational responses
- 200-299 are successfull responses
- 300-399 are redirection messages
- 400-499 are client error responses
- 500-599 are server error responses
1xx – Informational responses
These codes indicate that the server has received the request and is continuing the process.
- 100 Continue: The server has received the initial part of the request and the client should continue.
- 101 Switching protocols: The server is changing to the protocol requested by the client.
- 102 Processing: The server has received and is processing the request, but no response is available yet.
- 103 Early hints: The server provides some response headers before the final response is ready.
2xx – Successful responses
These codes signify that the server successfully processed the request.
- 200 OK: The request was successful, and the server returned the requested resource.
- 201 Created: The request was successful, resulting in the creation of a new resource.
- 202 Accepted: The request has been accepted for processing, but the processing is not complete.
- 203 Non-authoritative information: The server returns information from a third party, not the original source.
- 204 No content: The server successfully processed the request but is not returning any content.
- 205 Reset content: The server successfully processed the request, and the client should reset the document view.
- 206 Partial content: The server is delivering only part of the resource due to a range header sent by the client.
- 207 Multi-status: The response provides status for multiple independent operations.
- 208 Already reported: The members of a DAV binding have already been enumerated in a previous reply to this request.
- 226 IM used: The server has fulfilled a GET request for the resource, and the response represents the result of one or more instance manipulations applied to the current instance.
3xx – Redirection responses
These codes indicate that further action is needed to complete the request.
- 300 Multiple choices: The request has more than one possible response; the user or user agent should choose one.
- 301 Moved permanently: The requested resource has been permanently moved to a new URL.
- 302 Found: The requested resource has been temporarily moved to a different URL.
- 303 See other: The response to the request can be found under another URL using the GET method.
- 304 Not modified: The resource has not been modified since the last request.
- 305 Use proxy: The requested resource must be accessed through the proxy given by the Location field.
- 307 Temporary redirect: The request should be repeated with another URI; however, future requests should still use the original URI.
- 308 Permanent redirect: The request and all future requests should be repeated using another URI.
4xx - Client error responses
These status codes indicate that the client seems to have an error.
- 400 Bad request: The server could not understand the request due to invalid syntax.
- 401 Unauthorized: The client must authenticate itself to get the requested response.
- 402 Payment required: Reserved for future use.
- 403 Forbidden: The client does not have access rights to the content.
- 404 Not found: The server cannot find the requested resource.
- 405 Method not allowed: The request method is known by the server but is not supported by the target resource.
- 406 Not acceptable: The server cannot produce a response matching the list of acceptable values defined in the request's headers.
- 407 Proxy authentication required: The client must first authenticate with the proxy.
- 408 Request timeout: The server would like to shut down this unused connection.
- 409 Conflict: The request conflicts with the current state of the server.
- 410 Gone: The requested content has been permanently deleted from the server.
- 411 Length required: The server refuses to accept the request without a defined Content-Length header.
- 412 Precondition failed: The server does not meet one of the preconditions the requester put on the request.
- 413 Payload too large: The request entity is larger than the server is willing or able to process.
- 414 URI too long: The URI requested by the client is longer than the server is willing to interpret.
- 415 Unsupported media type: The media format of the requested data is not supported by the server.
- 416 Range not satisfiable: The client has asked for a portion of the file, but the server cannot supply that portion.
- 417 Expectation failed: The server cannot meet the requirements of the Expect request-header field.
- 418 I'm a teapot: This was defined in 1998 as an April Fools joke and was not expected to be implemented by actual HTTP servers. You can see it in action on Google.
- 421 Misdirected request: The request was directed at a server that cannot produce a response.
- 422 Unprocessable content: The request was well-formed but could not be processed due to semantic errors.
- 423 Locked: The resource that is being accessed is locked.
- 424 Failed dependency: The request failed because it depended on another failed request.
- 425 Too early: Indicates that the server is unwilling to risk processing a request that might be replayed.
- 426 Upgrade required: The client should switch to a different protocol.
- 428 Precondition required: The server requires the request to be conditional to prevent conflicts.
- 429 Too many requests: The user has sent too many requests in a given time.
- 431 Request header fields too large: The server is unwilling to process the request because the header fields are too large.
- 451 Unavailable for legal reasons: The server operator has received a legal demand to deny access to a resource.
5xx - Server error responses
These status codes indicate the server failed to fulfil a valid request.
- 500 Internal server error: The server encountered an unexpected condition that prevented it from fulfilling the request.
- 501 Not Implemented: The server does not recognise the request method or cannot fulfil it.
- 502 Bad gateway: The server, acting as a gateway or proxy, received an invalid response from the upstream server.
- 503 Service unavailable: The server cannot handle the request due to temporary overload or maintenance.
- 504 Gateway timeout: The server, acting as a gateway or proxy, did not receive a timely response from the upstream server.
- 505 HTTP version not supported: The server does not support the HTTP protocol version used in the request.
- 506 Variant also negotiates: Transparent content negotiation resulted in a circular reference.
- 507 Insufficient storage: The server cannot store the representation needed to complete the request.
- 508 Loop detected: The server detected an infinite loop while processing the request.
- 510 Not Extended: Further extensions to the request are required for the server to fulfil it.
- 511 Network authentication required: The client must authenticate to gain network access.
Non-standard HTTP status codes
In addition to the HTTP status codes above, there are some non-standard status codes which are specific to certain platforms or applications.
Here's a list of some notable non-standard HTTP status codes and their meanings:
- 520 Web Server Returned an Unknown Error (Cloudflare): The origin server returned an empty, unknown, or unexpected response to Cloudflare.
- 521 Web Server Is Down (Cloudflare): The origin server refused connections from Cloudflare. Security solutions at the origin may be blocking legitimate connections from certain Cloudflare IP addresses.
- 522 Connection Timed Out (Cloudflare): Cloudflare timed out contacting the origin server.
- 523 Origin Is Unreachable (Cloudflare): Cloudflare could not reach the origin server; for example, if the DNS records for the origin server are incorrect or missing.
- 524 A Timeout Occurred (Cloudflare): Cloudflare was able to complete a TCP connection to the origin server, but did not receive a timely HTTP response.
- 525 SSL Handshake Failed (Cloudflare): Cloudflare could not negotiate an SSL/TLS handshake with the origin server.
- 526 Invalid SSL Certificate (Cloudflare): Cloudflare could not validate the SSL certificate on the origin web server.
- 530 (Cloudflare): Returned along with a 1xx error.
- 999 Request Denied (LinkedIn): 999 is not part of the official HTTP standard. It is an unofficial code, notably used by LinkedIn, to indicate that a request has been denied. This response is often encountered when automated tools or bots attempt to access these sites, as a measure to prevent unauthorized scraping or excessive requests.
These non-standard status codes may not be universally recognised. But understanding them can be crucial for troubleshooting and optimizing interactions with these specific services.
Benefits of understanding HTTP status codes
Understanding HTTP status codes offers several benefits to web teams, including:
- Issue diagnosis: Quickly identify and resolve problems by interpreting server responses.
- User experience: Ensure smooth website functionality, reducing user frustration from errors.
- SEO Performance: Maintain visibility in search results by allowing search engines to crawl and index the site effectively.
- Troubleshooting: Aid debugging processes by facilitating effective communication between servers and clients.
- Communication: Reduce ambiguity with well-defined codes to convey request outcomes.