HTTP Status Rabbits

HTTP status codes explained with adorable rabbits

1xx Informational

HTTP 100 - Continue
100
Continue

The server has received the request headers and the client should proceed to send the request body.

HTTP 101 - Switching Protocols
101
Switching Protocols

The requester has asked the server to switch protocols and the server has agreed to do so.

HTTP 102 - Processing
102
Processing

The server has received and is processing the request, but no response is available yet.

HTTP 103 - Early Hints
103
Early Hints

Used to return some response headers before final HTTP message.

2xx Success

HTTP 200 - OK
200
OK

Standard response for successful HTTP requests.

HTTP 201 - Created
201
Created

The request has been fulfilled, resulting in the creation of a new resource.

HTTP 202 - Accepted
202
Accepted

The request has been accepted for processing, but the processing has not been completed.

HTTP 203 - Non-Authoritative Information
203
Non-Authoritative Information

The server is a transforming proxy that received a 200 OK from its origin, but is returning a modified version.

HTTP 204 - No Content
204
No Content

The server successfully processed the request and is not returning any content.

HTTP 205 - Reset Content
205
Reset Content

The server successfully processed the request, but is not returning any content.

HTTP 206 - Partial Content
206
Partial Content

The server is delivering only part of the resource due to a range header sent by the client.

HTTP 207 - Multi-Status
207
Multi-Status

The message body that follows is an XML message and can contain a number of separate response codes.

HTTP 208 - Already Reported
208
Already Reported

The members of a DAV binding have already been enumerated in a previous reply.

HTTP 226 - IM Used
226
IM Used

The server has fulfilled a request for the resource, and the response is a representation of the result.

3xx Redirection

HTTP 300 - Multiple Choices
300
Multiple Choices

Indicates multiple options for the resource from which the client may choose.

HTTP 301 - Moved Permanently
301
Moved Permanently

This and all future requests should be directed to the given URI.

HTTP 302 - Found
302
Found

The resource was found, but at a different URI.

HTTP 303 - See Other
303
See Other

The response to the request can be found under another URI using a GET method.

HTTP 304 - Not Modified
304
Not Modified

Indicates that the resource has not been modified since the version specified by the request headers.

HTTP 305 - Use Proxy
305
Use Proxy

The requested resource is available only through a proxy.

HTTP 306 - Switch Proxy
306
Switch Proxy

No longer used. Originally meant subsequent requests should use the specified proxy.

HTTP 307 - Temporary Redirect
307
Temporary Redirect

The request should be repeated with another URI; however, future requests should still use the original URI.

HTTP 308 - Permanent Redirect
308
Permanent Redirect

The request and all future requests should be repeated using another URI.

4xx Client Error

HTTP 400 - Bad Request
400
Bad Request

The server cannot or will not process the request due to an apparent client error.

HTTP 401 - Unauthorized
401
Unauthorized

Authentication is required and has failed or has not yet been provided.

HTTP 402 - Payment Required
402
Payment Required

Reserved for future use. The original intention was for digital payment systems.

HTTP 403 - Forbidden
403
Forbidden

The request was valid, but the server is refusing action.

HTTP 404 - Not Found
404
Not Found

The requested resource could not be found but may be available in the future.

HTTP 405 - Method Not Allowed
405
Method Not Allowed

A request method is not supported for the requested resource.

HTTP 406 - Not Acceptable
406
Not Acceptable

The requested resource is capable of generating only content not acceptable according to the Accept headers.

HTTP 407 - Proxy Authentication Required
407
Proxy Authentication Required

The client must first authenticate itself with the proxy.

HTTP 408 - Request Timeout
408
Request Timeout

The server timed out waiting for the request.

HTTP 409 - Conflict
409
Conflict

Indicates that the request could not be processed because of conflict in the request.

HTTP 410 - Gone
410
Gone

Indicates that the resource requested is no longer available and will not be available again.

HTTP 411 - Length Required
411
Length Required

The request did not specify the length of its content, which is required by the requested resource.

HTTP 412 - Precondition Failed
412
Precondition Failed

The server does not meet one of the preconditions that the requester put on the request.

HTTP 413 - Payload Too Large
413
Payload Too Large

The request is larger than the server is willing or able to process.

HTTP 414 - URI Too Long
414
URI Too Long

The URI provided was too long for the server to process.

HTTP 415 - Unsupported Media Type
415
Unsupported Media Type

The request entity has a media type which the server or resource does not support.

HTTP 416 - Range Not Satisfiable
416
Range Not Satisfiable

The client has asked for a portion of the file, but the server cannot supply that portion.

HTTP 417 - Expectation Failed
417
Expectation Failed

The server cannot meet the requirements of the Expect request-header field.

HTTP 418 - I'm a teapot
418 Unofficial
I'm a teapot

This code was defined in 1998 as an April Fools' joke and is not expected to be implemented by actual HTTP servers.

HTTP 421 - Misdirected Request
421
Misdirected Request

The request was directed at a server that is not able to produce a response.

HTTP 422 - Unprocessable Entity
422
Unprocessable Entity

The request was well-formed but was unable to be followed due to semantic errors.

HTTP 423 - Locked
423
Locked

The resource that is being accessed is locked.

HTTP 424 - Failed Dependency
424
Failed Dependency

The request failed due to failure of a previous request.

HTTP 425 - Too Early
425
Too Early

Indicates that the server is unwilling to risk processing a request that might be replayed.

HTTP 426 - Upgrade Required
426
Upgrade Required

The client should switch to a different protocol.

HTTP 428 - Precondition Required
428
Precondition Required

The origin server requires the request to be conditional.

HTTP 429 - Too Many Requests
429
Too Many Requests

The user has sent too many requests in a given amount of time.

HTTP 431 - Request Header Fields Too Large
431
Request Header Fields Too Large

The server is unwilling to process the request because either an individual header field, or all the header fields collectively, are too large.

HTTP 451 - Unavailable For Legal Reasons
451
Unavailable For Legal Reasons

A server operator has received a legal demand to deny access to a resource or to a set of resources.

HTTP 420 - Enhance Your Calm
420 Unofficial
Enhance Your Calm

Returned by the Twitter Search and Trends API when the client is being rate limited.

HTTP 430 - Request Header Fields Too Large
430 Unofficial
Request Header Fields Too Large

Used by Shopify to indicate that the request header fields are too large.

HTTP 440 - Login Time-out
440 Unofficial
Login Time-out

The client's session has expired and must log in again.

HTTP 444 - No Response
444 Unofficial
No Response

Used in nginx to indicate that the server has returned no information and closed the connection.

HTTP 449 - Retry With
449 Unofficial
Retry With

The server cannot honour the request because the user has not provided the required information.

HTTP 450 - Blocked by Windows Parental Controls
450 Unofficial
Blocked by Windows Parental Controls

A Microsoft extension indicating that Windows Parental Controls are turned on and blocking access.

HTTP 460 - Client Closed Connection
460 Unofficial
Client Closed Connection

Used by AWS Elastic Load Balancer to indicate that the client closed the connection.

HTTP 463 - Too Many Forwarded IP Addresses
463 Unofficial
Too Many Forwarded IP Addresses

Used by AWS Elastic Load Balancer when X-Forwarded-For header contains more than 30 IP addresses.

HTTP 494 - Request Header Too Large
494 Unofficial
Request Header Too Large

nginx internal code similar to 431.

HTTP 495 - SSL Certificate Error
495 Unofficial
SSL Certificate Error

nginx internal code used when SSL client certificate error occurred.

HTTP 496 - SSL Certificate Required
496 Unofficial
SSL Certificate Required

nginx internal code used when client did not provide certificate.

HTTP 497 - HTTP Request Sent to HTTPS Port
497 Unofficial
HTTP Request Sent to HTTPS Port

nginx internal code used when HTTP request was sent to HTTPS port.

HTTP 498 - Invalid Token
498 Unofficial
Invalid Token

Returned by ArcGIS for Server when a token is invalid or expired.

HTTP 499 - Client Closed Request
499 Unofficial
Client Closed Request

nginx internal code used when the client closes the connection while nginx is processing the request.

5xx Server Error

HTTP 500 - Internal Server Error
500
Internal Server Error

A generic error message when an unexpected condition was encountered.

HTTP 501 - Not Implemented
501
Not Implemented

The server either does not recognize the request method, or it lacks the ability to fulfill the request.

HTTP 502 - Bad Gateway
502
Bad Gateway

The server was acting as a gateway or proxy and received an invalid response from the upstream server.

HTTP 503 - Service Unavailable
503
Service Unavailable

The server is currently unavailable (overloaded or down for maintenance).

HTTP 504 - Gateway Timeout
504
Gateway Timeout

The server was acting as a gateway or proxy and did not receive a timely response from the upstream server.

HTTP 505 - HTTP Version Not Supported
505
HTTP Version Not Supported

The server does not support the HTTP protocol version used in the request.

HTTP 506 - Variant Also Negotiates
506
Variant Also Negotiates

Transparent content negotiation for the request results in a circular reference.

HTTP 507 - Insufficient Storage
507
Insufficient Storage

The server is unable to store the representation needed to complete the request.

HTTP 508 - Loop Detected
508
Loop Detected

The server detected an infinite loop while processing the request.

HTTP 510 - Not Extended
510
Not Extended

Further extensions to the request are required for the server to fulfill it.

HTTP 511 - Network Authentication Required
511
Network Authentication Required

The client needs to authenticate to gain network access.

HTTP 520 - Web Server Returned an Unknown Error
520 Unofficial
Web Server Returned an Unknown Error

Cloudflare error used when the origin server returns an unknown error.

HTTP 521 - Web Server Is Down
521 Unofficial
Web Server Is Down

Cloudflare error used when the origin server refuses the connection.

HTTP 522 - Connection Timed Out
522 Unofficial
Connection Timed Out

Cloudflare error used when the connection to the origin server times out.

HTTP 523 - Origin Is Unreachable
523 Unofficial
Origin Is Unreachable

Cloudflare error used when the origin server is unreachable.

HTTP 524 - A Timeout Occurred
524 Unofficial
A Timeout Occurred

Cloudflare error used when a connection was made but the origin server timed out before a response was received.

HTTP 525 - SSL Handshake Failed
525 Unofficial
SSL Handshake Failed

Cloudflare error used when the SSL/TLS handshake with the origin server fails.

HTTP 526 - Invalid SSL Certificate
526 Unofficial
Invalid SSL Certificate

Cloudflare error used when the origin server presents an invalid SSL certificate.

HTTP 527 - Railgun Error
527 Unofficial
Railgun Error

Cloudflare error used when there is an error with Cloudflare Railgun.

HTTP 529 - Site is overloaded
529 Unofficial
Site is overloaded

Used by Qualys in the SSLLabs server testing API to signal that the site cannot process the request.

HTTP 530 - Site is frozen
530 Unofficial
Site is frozen

Used by Cloudflare for sites under DDoS protection where access has been frozen.

HTTP 561 - Unauthorized
561 Unofficial
Unauthorized

Used by AWS Elastic Load Balancer for authentication errors.

HTTP 598 - Network Read Timeout Error
598 Unofficial
Network Read Timeout Error

Used by some HTTP proxies to signal a network read timeout behind the proxy.

HTTP 599 - Network Connect Timeout Error
599 Unofficial
Network Connect Timeout Error

Used by some HTTP proxies to signal a network connect timeout behind the proxy.