100 Continue
The server got the request headers and the client should send the body.
Sent in reply to Expect: 100-continue, so a large upload is not sent to a server that would refuse it.
Every HTTP status code with what it means and when to use it.
Runs in your browser. Your input is not uploaded.
Loading the tool…
Every HTTP response starts with a three-digit status code. The first digit is the class: 1xx informational, 2xx success, 3xx redirection, 4xx client error and 5xx server error.
This reference follows RFC 9110 and lists each code with what it means and when to return it, plus the pairs people mix up.
60 codes
100 ContinueThe server got the request headers and the client should send the body.
Sent in reply to Expect: 100-continue, so a large upload is not sent to a server that would refuse it.
101 Switching ProtocolsThe server is switching to the protocol in the Upgrade header.
This is how a WebSocket connection starts.
103 Early HintsPreliminary headers, usually Link preload hints, sent before the final response.
200 OKThe request succeeded. The body holds the result.
201 CreatedA new resource was created. The Location header should point to it.
Use for a successful POST that creates something.
202 AcceptedThe request was accepted for processing, but the work is not finished.
Common for queued jobs. Return a way to check status.
203 Non-Authoritative InformationThe response was modified by a proxy and is not exactly what the origin sent.
204 No ContentThe request succeeded and there is no body.
Typical for DELETE, or a PUT that does not return the resource.
205 Reset ContentThe request succeeded and the client should reset the view, such as clearing a form.
206 Partial ContentThe body is the byte range asked for in the Range header.
Used for resumable downloads and video seeking.
207 Multi-StatusWebDAV: the body holds separate status codes for several operations.
208 Already ReportedWebDAV: members of a binding were already listed earlier in the response.
226 IM UsedThe response is the result of instance manipulations applied to the current resource.
300 Multiple ChoicesThere are several representations and the client should choose one.
301 Moved PermanentlyThe resource has a new permanent URL, given in Location.
Browsers may change a POST to GET when following it. Use 308 to keep the method.
302 FoundThe resource is temporarily at the URL in Location.
Clients often change POST to GET. Use 307 to keep the method.
303 See OtherFetch the result from the URL in Location with GET.
The standard redirect after a form POST, so a refresh does not resubmit.
304 Not ModifiedThe cached copy is still current. There is no body.
Returned for conditional requests with If-None-Match or If-Modified-Since.
307 Temporary RedirectRepeat the same request, with the same method and body, at the URL in Location.
308 Permanent RedirectThe resource has moved permanently. Repeat the same method and body at the new URL.
400 Bad RequestThe server cannot process the request because it is malformed.
For valid syntax with invalid values, many APIs use 422 instead.
401 UnauthorizedAuthentication is missing or invalid.
Despite the name, this means unauthenticated. The response must include WWW-Authenticate.
402 Payment RequiredReserved. Some APIs use it when a plan limit or payment is required.
403 ForbiddenThe server understood who you are and refuses the request.
Logging in again will not help, unlike 401.
404 Not FoundThere is nothing at this URL.
Also used to hide a resource the client is not allowed to know exists.
405 Method Not AllowedThe URL exists but does not accept this method.
The response must include an Allow header listing the methods it does accept.
406 Not AcceptableThe server cannot produce a format that matches the Accept headers.
407 Proxy Authentication RequiredAuthenticate with the proxy first.
408 Request TimeoutThe client took too long to send the request.
409 ConflictThe request conflicts with the current state of the resource.
Examples: an edit conflict, or creating something that already exists.
410 GoneThe resource existed and has been removed on purpose, with no forwarding address.
Search engines drop a 410 faster than a 404.
411 Length RequiredThe server requires a Content-Length header.
412 Precondition FailedA condition in If-Match or If-Unmodified-Since was false.
Used for optimistic locking: someone else changed the resource first.
413 Content Too LargeThe request body is larger than the server will accept.
414 URI Too LongThe URL is longer than the server will process.
415 Unsupported Media TypeThe server does not accept the Content-Type of the body.
Often a missing Content-Type: application/json.
416 Range Not SatisfiableThe Range header asks for bytes outside the resource.
417 Expectation FailedThe server cannot meet the Expect header.
418 I'm a teapotAn April Fools joke from RFC 2324, kept as reserved. Some servers use it for requests they refuse to handle.
421 Misdirected RequestThe request went to a server that cannot answer for this host.
Seen with HTTP/2 connection reuse across certificates.
422 Unprocessable ContentThe syntax is valid but the content fails validation.
The usual code for form or JSON validation errors.
423 LockedWebDAV: the resource is locked.
424 Failed DependencyWebDAV: the request failed because an earlier request failed.
425 Too EarlyThe server will not process a request that might be replayed (TLS early data).
426 Upgrade RequiredSwitch to the protocol in the Upgrade header and try again.
428 Precondition RequiredThe request must be conditional, such as with If-Match, to avoid lost updates.
429 Too Many RequestsThe client is rate limited.
Check Retry-After for how long to wait.
431 Request Header Fields Too LargeThe headers, often cookies, are too large.
451 Unavailable For Legal ReasonsThe resource cannot be served because of a legal demand.
500 Internal Server ErrorThe server hit an error it did not handle.
A bug on the server side. The details belong in server logs, not the response.
501 Not ImplementedThe server does not support the method or feature.
502 Bad GatewayA proxy or gateway got an invalid response from the upstream server.
Usually the app behind the load balancer crashed or refused the connection.
503 Service UnavailableThe server is overloaded or down for maintenance.
Send Retry-After if you know when it will be back.
504 Gateway TimeoutA proxy or gateway did not get a response from upstream in time.
505 HTTP Version Not SupportedThe server does not support the HTTP version used.
506 Variant Also NegotiatesA content-negotiation configuration error on the server.
507 Insufficient StorageWebDAV: the server cannot store what is needed to complete the request.
508 Loop DetectedWebDAV: the server found an infinite loop while processing.
510 Not ExtendedFurther extensions to the request are required.
511 Network Authentication RequiredLog in to the network first, as on a captive Wi-Fi portal.