Skip to content

HTTP Status Codes

Useful information about each kind of HTTP response code.
Inspired by awesome lists and RFCs.

Quick ranges

  • 1xx — Informational (request received, continuing)
  • 2xx — Success
  • 3xx — Redirection
  • 4xx — Client error
  • 5xx — Server error

Legend

  • Code — numeric status code
  • Title — canonical reason phrase
  • Notes — short explanation and typical usage

Informational — 1xx

Code Title Notes
100 Continue Client should continue the request (after Expect: 100-continue).
101 Switching Protocols Server is switching protocols (e.g., HTTP → WebSocket).
102 Processing (WebDAV) Server has received and is processing the request.
103 Early Hints Hints to help the client start preloading resources.

Success — 2xx

These codes indicate a successful action. If a body is present, it is the representation of the result.

Code Title Notes
200 OK Standard success response.
201 Created Resource created (often in response to POST); Location header points to the new URI.
202 Accepted Request accepted for processing, but not yet completed (asynchronous).
203 Non-Authoritative Information Payload metadata may be from a transforming proxy/cached copy.
204 No Content No body returned; client should stay on the same view.
205 Reset Content No body; instructs the client to reset the document view.
206 Partial Content Partial response to a range request.
207 Multi-Status (WebDAV) Multiple status codes for independent operations.
208 Already Reported (WebDAV) Members already reported in a prior response.
226 IM Used Response is the result of instance-manipulations.

Redirection — 3xx

Client needs to take additional action to complete the request.

Code Title Notes
301 Moved Permanently Resource has a new permanent URI. Update links/bookmarks.
302 Found Temporarily under a different URI (historically similar to 307).
303 See Other Redirect to another URI using GET (e.g., after POST).
304 Not Modified Resource not modified; use cached version.
305 Use Proxy Deprecated; switch to a specified proxy.
306 Switch Proxy Unused/Reserved.
307 Temporary Redirect Same method; temporary different URI.
308 Permanent Redirect Same method; permanent different URI.

Client Errors — 4xx

The request seems to contain an error from the client’s side.

Code Title Notes
400 Bad Request Malformed request syntax or invalid message framing.
401 Unauthorized Authentication required or failed.
402 Payment Required Reserved for future use (rarely used).
403 Forbidden Understood, but refused (authorization won’t help).
404 Not Found Resource not found at the given URI.
405 Method Not Allowed HTTP method not supported for the resource.
406 Not Acceptable No acceptable representation per Accept headers.
407 Proxy Authentication Required Authenticate with the proxy first.
408 Request Timeout Server timed out waiting for the request.
409 Conflict Request conflicts with current state of the target.
410 Gone Resource permanently removed; no forwarding address.
411 Length Required Content-Length header required.
412 Precondition Failed Failed preconditions in request headers (e.g., If-Match).
413 Content Too Large Payload too large (a.k.a. Payload Too Large).
414 URI Too Long URI exceeds server limits.
415 Unsupported Media Type Unsupported Content-Type.
416 Range Not Satisfiable Invalid/unsatisfiable range.
417 Expectation Failed Server cannot meet Expect header requirements.
418 I'm a Teapot RFC 2324 (April 1, 1998) — easter egg.
421 Misdirected Request Target not able to produce a response (e.g., SNI mismatch).
422 Unprocessable Content Semantic errors (WebDAV; standardized in RFC 9110).
423 Locked (WebDAV) Resource is locked.
424 Failed Dependency (WebDAV) Due to failure of a previous request.
426 Upgrade Required Switch to a different protocol (e.g., TLS).
428 Precondition Required Origin requires conditional requests.
429 Too Many Requests Rate limiting — too many requests in a given time.
431 Request Header Fields Too Large Headers too large.
451 Unavailable For Legal Reasons Blocked for legal demands (e.g., DMCA, court order).

Vendor / non‑standard (commonly seen):

Code Title Notes
420 Enhance Your Calm Twitter rate limiting (legacy).
444 No Response Nginx closes connection without a response.
449 Retry With Microsoft extension — retry after action.
450 Blocked by Windows Parental Controls Microsoft extension.

Server Errors — 5xx

The server accepted the request but failed to complete it successfully.

Code Title Notes
500 Internal Server Error Unexpected condition prevented fulfillment.
501 Not Implemented Method or capability not supported.
502 Bad Gateway Invalid response from upstream server.
503 Service Unavailable Temporary overload or maintenance; consider Retry-After.
504 Gateway Timeout Upstream didn’t respond in time.
505 HTTP Version Not Supported Selected HTTP version not supported.
506 Variant Also Negotiates Negotiation leads to circular references.
507 Insufficient Storage (WebDAV) Server cannot store the representation.
508 Loop Detected (WebDAV) Infinite loop while processing.
510 Not Extended Further extensions required.
511 Network Authentication Required Authenticate to gain network access.

Vendor / non‑standard:

Code Title Notes
509 Bandwidth Limit Exceeded Non-standard (often cPanel).
598 Network Read Timeout Proxy/read timeout (non-standard).
599 Network Connect Timeout Proxy/connect timeout (non-standard).

Quick reference (copy‑paste)

1xx: 100, 101, 102, 103
2xx: 200, 201, 202, 203, 204, 205, 206, 207, 208, 226
3xx: 301, 302, 303, 304, 305, 306, 307, 308
4xx: 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 421, 422, 423, 424, 426, 428, 429, 431, 451
5xx: 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, 511