100 Continue Informational
The server has received the request headers and the client should go on to send the body.
In practice: Seen with large uploads when the client sent an Expect: 100-continue header. Most code never handles it directly.
101 Switching Protocols Informational
The server agrees to change to the protocol the client asked for, such as WebSocket.
In practice: A normal reply to an Upgrade request. If the upgrade fails, check proxy settings that strip the Upgrade header.
102 Processing Informational
The server has accepted a long-running request and has not finished yet (WebDAV).
In practice: Rare outside WebDAV. It only tells the client the request is still alive.
103 Early Hints Informational
The server sends header hints, such as preload links, before the final response is ready.
In practice: Lets a browser start loading files while the server builds the page.
200 OK Success
The request succeeded and the response carries the result.
In practice: The default success code for GET and for most POST calls that return data.
201 Created Success
The request succeeded and a new resource was created.
In practice: Return it after a POST that adds something, ideally with a Location header that points to the new item.
202 Accepted Success
The request was accepted for processing, but the work is not finished.
In practice: Use it for queued or background jobs and tell the client where to check progress.
203 Non-Authoritative Information Success
The request succeeded, but a proxy changed the response from the origin server.
In practice: Uncommon. It signals that a transforming proxy sits between you and the origin.
204 No Content Success
The request succeeded and there is nothing to send back.
In practice: A good fit for DELETE and for updates where the client needs no body.
205 Reset Content Success
The request succeeded and the client should reset the form or view that sent it.
In practice: Rarely used in practice.
206 Partial Content Success
The server is sending only the byte range the client asked for.
In practice: Used for resumable downloads and video seeking. It answers a Range header.
207 Multi-Status Success
The body holds separate status codes for several operations (WebDAV).
In practice: Read each part of the body, because one request can contain successes and failures.
208 Already Reported Success
Members of a WebDAV binding were already listed earlier in the same response.
In practice: Seen only in WebDAV responses.
226 IM Used Success
The server fulfilled a GET using instance manipulations, such as a delta encoding.
In practice: Very rare on the public web.
300 Multiple Choices Redirection
The request matches more than one resource and the client may pick one.
In practice: Rarely used because there is no standard way to present the choices.
301 Moved Permanently Redirection
The resource has a new permanent address given in the Location header.
In practice: Use it for permanent URL changes. Clients may change a POST into a GET when they follow it, so use 308 to keep the method.
302 Found Redirection
The resource is temporarily at a different address given in the Location header.
In practice: A temporary redirect. Many clients switch POST to GET, so use 307 when the method must stay the same.
303 See Other Redirection
The response to the request is at another address and should be fetched with GET.
In practice: Common after a form POST, so a reload does not submit the form again.
304 Not Modified Redirection
The cached copy is still current, so no body is sent.
In practice: Returned for conditional requests that use If-None-Match or If-Modified-Since. It is a sign that caching works.
305 Use Proxy Redirection
The resource must be reached through a proxy. This code is deprecated.
In practice: Do not use it. Clients ignore it for security reasons.
307 Temporary Redirect Redirection
The resource is temporarily at another address and the same method and body must be reused.
In practice: The method-preserving version of 302.
308 Permanent Redirect Redirection
The resource has moved permanently and the same method and body must be reused.
In practice: The method-preserving version of 301.
400 Bad Request Client error
The server cannot process the request because it is malformed or invalid.
In practice: Check the URL, headers and body syntax. Return a clear message about which field was wrong.
401 Unauthorized Client error
The request lacks valid authentication credentials.
In practice: Despite the name, it means "not authenticated". Send or refresh credentials. The response should include a WWW-Authenticate header.
402 Payment Required Client error
Reserved for future use. Some services use it when payment is needed.
In practice: There is no standard behavior, so read the documentation of the service that returned it.
403 Forbidden Client error
The server understood the request but refuses to allow it.
In practice: The identity is known or irrelevant, but access is denied. Check permissions, IP rules and file ownership.
404 Not Found Client error
The server cannot find the requested resource.
In practice: Check the URL for typos. Servers also use it to hide a resource that exists.
405 Method Not Allowed Client error
The method is known but not supported for this resource.
In practice: The response should list the allowed methods in an Allow header.
406 Not Acceptable Client error
The server cannot produce a response that matches the Accept headers.
In practice: Loosen the Accept, Accept-Language or Accept-Encoding headers.
407 Proxy Authentication Required Client error
The client must authenticate with the proxy first.
In practice: Like 401, but the credentials are for the proxy.
408 Request Timeout Client error
The server gave up waiting for the client to finish sending the request.
In practice: The client was too slow or the connection stalled. A retry on a new connection is usually safe.
409 Conflict Client error
The request conflicts with the current state of the resource.
In practice: Common with edit collisions and duplicate unique values. Fetch the latest state and try again.
410 Gone Client error
The resource was here but has been removed on purpose, with no forwarding address.
In practice: Stronger than 404 because it says the removal is permanent.
411 Length Required Client error
The server requires a Content-Length header.
In practice: Add Content-Length to the request.
412 Precondition Failed Client error
A condition in the request headers, such as If-Match, was not true on the server.
In practice: Used for safe updates. Reload the resource and compare its current version.
413 Content Too Large Client error
The request body is larger than the server allows.
In practice: Send less data or raise the server limit. Older documents call it Payload Too Large.
414 URI Too Long Client error
The request address is longer than the server will accept.
In practice: Move long query data into a POST body.
415 Unsupported Media Type Client error
The server does not accept the format of the request body.
In practice: Check the Content-Type header, for example application/json.
416 Range Not Satisfiable Client error
The requested byte range lies outside the size of the resource.
In practice: Ask for a range inside the file size.
417 Expectation Failed Client error
The server cannot meet the requirements in the Expect header.
In practice: Remove the Expect header or send the body without waiting.
418 I'm a teapot Client error
A joke code from an April Fools specification for a coffee pot protocol.
In practice: Not meant for real use, though some services return it on purpose for blocked or unwanted requests.
421 Misdirected Request Client error
The request was sent to a server that cannot give an answer for that host.
In practice: Seen with connection reuse across hosts on HTTP/2. Retry on a new connection.
422 Unprocessable Content Client error
The syntax is valid, but the server cannot process the instructions in it.
In practice: Common for validation failures in APIs. List which fields failed.
423 Locked Client error
The resource is locked (WebDAV).
In practice: Wait for the lock to be released or use the lock token.
424 Failed Dependency Client error
The request failed because an earlier request it depended on failed (WebDAV).
In practice: Fix the first failure and send the group again.
425 Too Early Client error
The server will not process a request that might be replayed.
In practice: Related to TLS early data. The client can retry after the handshake completes.
426 Upgrade Required Client error
The server wants the client to switch to a newer protocol.
In practice: The response names the protocol in an Upgrade header.
428 Precondition Required Client error
The server requires the request to be conditional.
In practice: Add an If-Match header so edits do not overwrite each other.
429 Too Many Requests Client error
The client has sent too many requests in a given time.
In practice: Slow down and respect the Retry-After header when it is present.
431 Request Header Fields Too Large Client error
The headers, or one header, are too large.
In practice: Often caused by oversized cookies. Clear cookies or trim headers.
451 Unavailable For Legal Reasons Client error
The resource is blocked for legal reasons.
In practice: The number is a nod to the novel Fahrenheit 451. The response may name the party that required the block.
500 Internal Server Error Server error
The server hit an unexpected problem and could not complete the request.
In practice: A server-side bug or misconfiguration. Check server logs for the real cause.
501 Not Implemented Server error
The server does not support the feature needed to answer the request.
In practice: Often seen when the method is not recognized at all.
502 Bad Gateway Server error
A gateway or proxy received an invalid response from the server behind it.
In practice: Check that the upstream app is running and reachable from the proxy.
503 Service Unavailable Server error
The server cannot handle the request right now, often from overload or maintenance.
In practice: Usually temporary. A Retry-After header may say when to try again.
504 Gateway Timeout Server error
A gateway or proxy did not get a timely response from the server behind it.
In practice: The upstream is slow or stuck. Look at timeouts and slow queries.
505 HTTP Version Not Supported Server error
The server does not support the HTTP version used in the request.
In practice: Try an older or newer version of the protocol.
506 Variant Also Negotiates Server error
A server configuration error in content negotiation.
In practice: A circular reference in the server setup.
507 Insufficient Storage Server error
The server cannot store what is needed to finish the request (WebDAV).
In practice: Free up space on the server.
508 Loop Detected Server error
The server found an infinite loop while processing the request (WebDAV).
In practice: Check for resources that point back to themselves.
510 Not Extended Server error
The server needs further extensions to the request to fulfill it.
In practice: Rare. It comes from an experimental extension framework.
511 Network Authentication Required Server error
The client must authenticate to gain network access.
In practice: Typical of captive portals at hotels and airports. Open a browser and sign in.
No status code matches that search. Try a code such as 404 or a word such as redirect.
Descriptions are written in plain language from the standard definitions. Always check the documentation of the service you are calling, because servers sometimes use codes in their own way.