Searchable reference for every HTTP status code — meaning, when it fires, and how DevOps/SRE teams should treat it. 1xx through 5xx.
Client should continue the request; interim response.
Server agrees to switch protocols (e.g. WebSocket upgrade).
Standard success.
Resource created — return its Location.
Accepted for async processing; not yet done.
Success with no body (common for DELETE/PUT).
Range request served — used by resumable downloads.
Permanent redirect; update your links. SEO-safe.
Temporary redirect (method may change to GET).
Cached copy is still valid; conditional GET.
Temporary; method and body preserved.
Permanent; method and body preserved.
Malformed request — client error, do not retry unchanged.
Missing/invalid authentication (should be "unauthenticated").
Authenticated but not allowed — RBAC/policy denial.
No such resource (or hidden for auth reasons).
Endpoint exists but not for this HTTP method.
Client took too long to send the request.
State conflict — optimistic-locking / version clash.
Permanently removed; unlike 404, intentional.
Body exceeds server/proxy limit (check nginx client_max_body_size).
Content-Type not accepted by the endpoint.
Syntactically valid but semantically wrong (validation).
Server unwilling to risk replay of an early-data request.
Rate limited — back off, honor Retry-After.
Headers exceed limit — often oversized cookies/JWTs.
nginx: client disconnected before the response (not a real RFC code).
Unhandled server error — check app logs/traces.
Server does not support the functionality.
Upstream returned an invalid response — backend down/misrouted.
Overloaded or in maintenance — shed load, honor Retry-After.
Upstream did not respond in time — slow/hung backend.
Server out of space to complete the request.
Captive portal — authenticate to get network access.