HTTP Status Codes
Look up what each HTTP status code means and when it is sent
1xx Informational Interim responses: the request goes on.
| 100 |
Continue
The headers were accepted: the client can send the body. Answers an Expect: 100-continue header.
|
| 101 |
Switching Protocols
The server switches to the protocol named in the Upgrade header, as when a connection becomes a WebSocket.
|
| 102 |
Processing Deprecated
The request is still being worked on. Superseded by 103.
|
| 103 |
Early Hints
Headers sent ahead, usually Link preloads, while the server prepares the real response.
|
2xx Success The request was received, understood and accepted.
| 200 |
OK
The request succeeded. The body holds the result.
|
| 201 |
Created
A resource was created. Its URL is in the Location header.
|
| 202 |
Accepted
The request was accepted but is not done yet, as with a queued job.
|
| 203 |
Non-Authoritative Information
A transforming proxy changed the origin server's response.
|
| 204 |
No Content
Success with no body, typical after a DELETE or a PUT.
|
| 205 |
Reset Content
Success: the client should reset the form or view that sent the request.
|
| 206 |
Partial Content
Part of the resource, answering a Range header: video seeking, resumed downloads.
|
| 207 |
Multi-Status WebDAV
Several statuses for several resources, in an XML body.
|
| 208 |
Already Reported WebDAV
Members of a binding already listed earlier in a 207 response.
|
| 226 |
IM Used
The response is a delta applied to the current instance (RFC 3229). Rarely seen.
|
3xx Redirection The client must take another step, usually follow the Location header.
| 300 |
Multiple Choices
Several representations are available and the client should pick one.
|
| 301 |
Moved Permanently
The resource moved for good. Browsers and search engines update the URL; a POST may be retried as a GET.
|
| 302 |
Found
Temporary redirect. A POST may be retried as a GET: use 307 to keep the method.
|
| 303 |
See Other
Fetch another URL with GET, as after a form submission (Post/Redirect/Get).
|
| 304 |
Not Modified
The cached copy is still valid, so no body is sent. Answers a conditional request (If-None-Match, If-Modified-Since). Also the name of this site.
|
| 305 |
Use Proxy Deprecated
Access the resource through the given proxy. Ignored by browsers for security reasons.
|
| 307 |
Temporary Redirect
Like 302, but the method and body must be kept.
|
| 308 |
Permanent Redirect
Like 301, but the method and body must be kept.
|
4xx Client error The request is wrong or not allowed: repeating it as is will fail again.
| 400 |
Bad Request
The request is malformed: invalid syntax, framing or parameters.
|
| 401 |
Unauthorized
Authentication is missing or invalid; the WWW-Authenticate header says how to log in. It really means "unauthenticated".
|
| 402 |
Payment Required
Reserved for future use. Some APIs send it for billing problems.
|
| 403 |
Forbidden
The server refuses the request. Logging in again will not help.
|
| 404 |
Not Found
Nothing exists at this URL, or the server does not want to say it does.
|
| 405 |
Method Not Allowed
The resource does not support this method. The Allow header lists those it does.
|
| 406 |
Not Acceptable
No representation matches the Accept headers.
|
| 407 |
Proxy Authentication Required
Like 401, but for the proxy.
|
| 408 |
Request Timeout
The client took too long to send the request; the server closed the connection.
|
| 409 |
Conflict
The request conflicts with the resource's current state: edit conflict, duplicate.
|
| 410 |
Gone
The resource was removed on purpose and will not come back.
|
| 411 |
Length Required
The server requires a Content-Length header.
|
| 412 |
Precondition Failed
An If-Match or If-Unmodified-Since condition failed: someone else changed the resource.
|
| 413 |
Content Too Large
The body is larger than the server accepts. Formerly "Payload Too Large".
|
| 414 |
URI Too Long
The URL is longer than the server accepts, often a GET that should be a POST.
|
| 415 |
Unsupported Media Type
The server does not accept this Content-Type.
|
| 416 |
Range Not Satisfiable
The Range header asks for bytes outside the resource.
|
| 417 |
Expectation Failed
The server cannot meet the Expect header.
|
| 418 |
I'm a teapot Joke
An April Fools' joke (RFC 2324), reserved so it is never assigned. Some servers use it to turn away bots.
|
| 419 |
Page Expired Laravel
The CSRF token expired, usually because the form was open too long.
|
| 421 |
Misdirected Request
This server cannot answer for this host, usually a reused HTTP/2 connection or a TLS certificate mismatch.
|
| 422 |
Unprocessable Content
The syntax is fine but the content is invalid: the usual answer to failed validation in an API.
|
| 423 |
Locked WebDAV
The resource is locked.
|
| 424 |
Failed Dependency WebDAV
The request failed because a request it depends on failed.
|
| 425 |
Too Early
The server will not process a request that might be replayed (TLS 1.3 early data).
|
| 426 |
Upgrade Required
Switch to the protocol given in the Upgrade header first.
|
| 428 |
Precondition Required
The server requires a conditional request (If-Match) to avoid lost updates.
|
| 429 |
Too Many Requests
Rate limited. The Retry-After header may say when to try again.
|
| 431 |
Request Header Fields Too Large
The headers are too large, often because of oversized cookies.
|
| 444 |
No Response nginx
nginx closed the connection without answering, often to drop unwanted requests.
|
| 451 |
Unavailable For Legal Reasons
Blocked for legal reasons such as a court order. The number refers to Fahrenheit 451.
|
| 494 |
Request Header Too Large nginx
A header or cookie exceeds the server buffers.
|
| 495 |
SSL Certificate Error nginx
The client certificate is invalid.
|
| 496 |
SSL Certificate Required nginx
The server requires a client certificate and none was sent.
|
| 497 |
HTTP Request Sent to HTTPS Port nginx
Plain HTTP was sent to a port that expects HTTPS.
|
| 499 |
Client Closed Request nginx
The client went away before the response was ready. Logged, never received.
|
5xx Server error The server failed to fulfill a valid request. Retrying later may work.
| 500 |
Internal Server Error
An unexpected error on the server, such as an uncaught exception.
|
| 501 |
Not Implemented
The server does not support this method at all.
|
| 502 |
Bad Gateway
A proxy got an invalid response from the server behind it: the app crashed or is not running.
|
| 503 |
Service Unavailable
Overloaded or under maintenance. Temporary; Retry-After may say for how long.
|
| 504 |
Gateway Timeout
A proxy waited too long for the server behind it.
|
| 505 |
HTTP Version Not Supported
The server does not support the HTTP version of the request.
|
| 506 |
Variant Also Negotiates
Content negotiation is misconfigured and loops on itself.
|
| 507 |
Insufficient Storage WebDAV
The server has no room left to complete the request.
|
| 508 |
Loop Detected WebDAV
An infinite loop was found while processing the request.
|
| 510 |
Not Extended Deprecated
Further extensions are required (RFC 2774, now historic).
|
| 511 |
Network Authentication Required
Log in to the network first: a captive portal, as on hotel Wi-Fi.
|
| 520 |
Web Server Returned an Unknown Error Cloudflare
The origin server sent an empty, unknown or unexpected response.
|
| 521 |
Web Server Is Down Cloudflare
The origin server refused the connection.
|
| 522 |
Connection Timed Out Cloudflare
The TCP connection to the origin server timed out.
|
| 523 |
Origin Is Unreachable Cloudflare
The origin server could not be reached, often a DNS or routing problem.
|
| 524 |
A Timeout Occurred Cloudflare
The origin server accepted the connection but did not answer within 100 seconds.
|
| 525 |
SSL Handshake Failed Cloudflare
The TLS handshake with the origin server failed.
|
| 526 |
Invalid SSL Certificate Cloudflare
The origin server's certificate could not be validated.
|
No status code matches.