100Continue1xx
The server has received the request headers and the client should proceed to send the request body.
Use case: Large file uploads — server confirms it will accept the data before the client sends the body.
101Switching Protocols1xx
The server is switching protocols as requested by the client via the Upgrade header.
Use case: WebSocket connections — upgrading from HTTP to WebSocket protocol.
102Processing1xx
The server has received and is processing the request, but no response is available yet.
Use case: Long-running WebDAV requests to prevent client timeout.
103Early Hints1xx
Used to return some response headers before the final HTTP message.
Use case: Preloading resources (CSS, JS) while server prepares the full response.
200OK2xx
The request has succeeded. The meaning depends on the HTTP method used.
Use case: Standard successful GET request returning requested data.
201Created2xx
The request has been fulfilled and a new resource has been created.
Use case: POST request that creates a new user account or database record.
202Accepted2xx
The request has been accepted for processing, but processing is not complete.
Use case: Async job queues — request accepted, processing happens in background.
203Non-Authoritative Information2xx
The returned metadata is not exactly the same as available from the origin server.
Use case: Proxy or CDN returning cached/modified headers from upstream.
204No Content2xx
The server successfully processed the request but is not returning any content.
Use case: DELETE request — resource removed, nothing to return.
205Reset Content2xx
The server successfully processed the request and asks the client to reset the document view.
Use case: Form submission — tells browser to clear/reset the form.
206Partial Content2xx
The server is delivering only part of the resource due to a range header.
Use case: Video streaming — serving byte ranges for seek/resume.
207Multi-Status2xx
Conveys information about multiple resources where multiple status codes might be appropriate.
Use case: WebDAV batch operations with mixed success/failure results.
208Already Reported2xx
Members of a DAV binding have already been enumerated and are not included again.
Use case: WebDAV avoiding duplicate enumeration in recursive responses.
226IM Used2xx
The server has fulfilled a GET request with instance-manipulations applied.
Use case: Delta encoding — server sends only changes since last request.
300Multiple Choices3xx
The request has more than one possible response; the user or agent should choose one.
Use case: Content negotiation — multiple formats available (JSON, XML, HTML).
301Moved Permanently3xx
The resource has been permanently moved to a new URI.
Use case: Domain migration — old URL permanently redirects to new one. SEO-friendly.
302Found3xx
The resource is temporarily located at a different URI.
Use case: Temporary redirect during maintenance or A/B testing.
303See Other3xx
The response can be found at another URI using GET.
Use case: POST/redirect/GET pattern — redirect after form submission.
304Not Modified3xx
The resource has not been modified since the last request.
Use case: Browser cache validation — ETag/If-Modified-Since checks.
305Use Proxy3xx
The requested resource must be accessed through a proxy. (Deprecated)
Use case: Deprecated — was used to force proxy usage.
307Temporary Redirect3xx
The resource is temporarily at another URI; method and body must not change.
Use case: HTTPS upgrade — redirect HTTP to HTTPS preserving POST method.
308Permanent Redirect3xx
The resource has permanently moved; method and body must not change.
Use case: API versioning — permanently redirect old API endpoint to new one.
400Bad Request4xx
The server cannot process the request due to client error (malformed syntax, invalid framing).
Use case: Malformed JSON body, missing required fields, invalid query params.
401Unauthorized4xx
The request requires user authentication. The client must authenticate itself.
Use case: API call without auth token or with expired JWT.
402Payment Required4xx
Reserved for future use. Sometimes used for digital payment systems.
Use case: Paywall — resource requires payment (Stripe integration).
403Forbidden4xx
The server understood the request but refuses to authorize it.
Use case: User authenticated but lacks permission (role-based access).
404Not Found4xx
The server cannot find the requested resource.
Use case: Requesting a deleted resource or mistyped URL.
405Method Not Allowed4xx
The HTTP method is not supported for the target resource.
Use case: Sending PUT to a read-only endpoint that only accepts GET.
406Not Acceptable4xx
The server cannot produce a response matching the Accept headers.
Use case: Client requests XML but server only serves JSON.
407Proxy Authentication Required4xx
Authentication with an intermediary proxy is required.
Use case: Corporate proxy requiring credentials before forwarding.
408Request Timeout4xx
The server timed out waiting for the request from the client.
Use case: Client opened connection but never sent data within time limit.
409Conflict4xx
The request conflicts with the current state of the server.
Use case: Creating a user with an email that already exists.
410Gone4xx
The resource is no longer available and will not be available again.
Use case: Deliberately removed API endpoint — stronger than 404.
411Length Required4xx
The server requires the Content-Length header to be defined.
Use case: Upload endpoint requiring Content-Length for resource allocation.
412Precondition Failed4xx
One or more conditions in the request headers evaluated to false.
Use case: Conditional update with If-Match that doesn't match current ETag.
413Payload Too Large4xx
The request entity is larger than the server is willing to process.
Use case: File upload exceeding max size (e.g., 10MB limit).
414URI Too Long4xx
The URI requested by the client is longer than the server will interpret.
Use case: GET request with extremely long query string.
415Unsupported Media Type4xx
The media format of the requested data is not supported by the server.
Use case: Sending application/xml to an endpoint that only accepts JSON.
416Range Not Satisfiable4xx
The range specified in the Range header cannot be fulfilled.
Use case: Requesting bytes 1000-2000 of a 500-byte file.
417Expectation Failed4xx
The expectation indicated by the Expect header cannot be met.
Use case: Server cannot meet Expect: 100-continue requirement.
418I'm a Teapot4xx
The server refuses to brew coffee because it is, permanently, a teapot.
Use case: Easter egg. Defined in RFC 2324 (Hyper Text Coffee Pot Control Protocol).
421Misdirected Request4xx
The request was directed at a server that is not able to produce a response.
Use case: HTTP/2 connection reuse to wrong virtual host.
422Unprocessable Entity4xx
The request was well-formed but semantically incorrect.
Use case: Valid JSON but business logic validation fails (e.g., end date before start).
423Locked4xx
The resource that is being accessed is locked.
Use case: WebDAV file locked by another user for editing.
424Failed Dependency4xx
The request failed due to failure of a previous request.
Use case: WebDAV batch operation where a prerequisite step failed.
425Too Early4xx
The server is unwilling to risk processing a request that might be replayed.
Use case: TLS 1.3 early data (0-RTT) that server won't process due to replay risk.
426Upgrade Required4xx
The server refuses to perform the request using the current protocol.
Use case: Server requires TLS — client must upgrade from HTTP to HTTPS.
428Precondition Required4xx
The server requires the request to be conditional.
Use case: Server requires If-Match header to prevent lost update problem.
429Too Many Requests4xx
The user has sent too many requests in a given amount of time.
Use case: Rate limiting — API returns this with Retry-After header.
431Request Header Fields Too Large4xx
The server is unwilling to process the request because headers are too large.
Use case: Oversized cookies or too many custom headers.
451Unavailable For Legal Reasons4xx
The resource is unavailable due to legal demands (censorship, court order).
Use case: Content blocked by government order or DMCA takedown.
500Internal Server Error5xx
The server encountered an unexpected condition that prevented it from fulfilling the request.
Use case: Unhandled exception in server code — generic catch-all error.
501Not Implemented5xx
The server does not support the functionality required to fulfill the request.
Use case: HTTP method not implemented (e.g., PATCH on legacy server).
502Bad Gateway5xx
The server received an invalid response from an upstream server.
Use case: Nginx/load balancer cannot reach the application server.
503Service Unavailable5xx
The server is currently unable to handle the request due to overload or maintenance.
Use case: Planned maintenance or server overload — use with Retry-After.
504Gateway Timeout5xx
The server did not receive a timely response from an upstream server.
Use case: Reverse proxy timeout — backend took too long to respond.
505HTTP Version Not Supported5xx
The server does not support the HTTP version used in the request.
Use case: Client using HTTP/3 on a server that only supports HTTP/1.1.
506Variant Also Negotiates5xx
Transparent content negotiation results in a circular reference.
Use case: Misconfigured content negotiation on server.
507Insufficient Storage5xx
The server is unable to store the representation needed to complete the request.
Use case: WebDAV server ran out of disk space.
508Loop Detected5xx
The server detected an infinite loop while processing the request.
Use case: WebDAV infinite loop in resource binding.
510Not Extended5xx
Further extensions to the request are required for the server to fulfill it.
Use case: Server requires additional HTTP extension not provided.
511Network Authentication Required5xx
The client needs to authenticate to gain network access.
Use case: Captive portal — hotel/airport WiFi login page.