| 100 | Continue Informativni | The server has received the headers; send the body. | After Expect: 100-continue, before uploading a large body. |
| 101 | Switching Protocols Informativni | The server agrees to change protocol. | WebSocket handshake. |
| 102 | Processing Informativni | WebDAV: request accepted, still working. | |
| 103 | Early Hints Informativni | Preliminary headers, mainly Link: rel=preload, before the final response. | CDNs and Cloudflare to start loading assets early. |
| 200 | OK Uspeh | The request succeeded. | The normal case. |
| 201 | Created Uspeh | A new resource was created; Location header points to it. | POST to a collection in a REST API. |
| 202 | Accepted Uspeh | Accepted for processing, not finished. | Async jobs and queues. |
| 203 | Non-Authoritative Information Uspeh | Response modified by a proxy. | Rare. |
| 204 | No Content Uspeh | Success with nothing to return. | DELETE, PUT, beacon endpoints, preflight responses. |
| 205 | Reset Content Uspeh | Success; the client should reset the form. | Rare. |
| 206 | Partial Content Uspeh | Only the requested byte range is returned. | Video streaming, resumable downloads (Range header). |
| 207 | Multi-Status Uspeh | WebDAV: multiple status codes in an XML body. | |
| 226 | IM Used Uspeh | Delta encoding applied. | Rare. |
| 300 | Multiple Choices Preusmerenje | Several representations are available. | Rare. |
| 301 | Moved Permanently Preusmerenje | The resource has a new permanent URL; the browser caches the redirect. Method may change to GET. | http→https, old URLs, www canonicalisation. Transfers SEO ranking. |
| 302 | Found Preusmerenje | Temporary redirect; method may change to GET. | Post-login redirects, A/B tests. Not cached by default. |
| 303 | See Other Preusmerenje | Redirect to a different resource with GET. | After a POST (post/redirect/get pattern). |
| 304 | Not Modified Preusmerenje | The cached copy is still valid; no body. | Conditional requests with If-None-Match / If-Modified-Since. |
| 307 | Temporary Redirect Preusmerenje | Like 302 but the method and body must not change. | Redirecting a POST without turning it into a GET; HSTS internal redirects in Chrome. |
| 308 | Permanent Redirect Preusmerenje | Like 301 but the method and body must not change. | Permanent redirects of API endpoints. |
| 400 | Bad Request Greška klijenta | The request is malformed; the server will not process it. | Invalid JSON, bad parameters, oversized headers, invalid Host. |
| 401 | Unauthorized Greška klijenta | Authentication is required or failed. The response should say how (WWW-Authenticate). | Missing or expired token. (Should have been called Unauthenticated.) |
| 402 | Payment Required Greška klijenta | Reserved; used by some APIs for quota or billing problems. | Stripe, some SaaS APIs, Cloudflare for some plan limits. |
| 403 | Forbidden Greška klijenta | Authenticated (or not) but not allowed. | Permission denied, WAF block, directory listing disabled, Cloudflare challenges. |
| 404 | Not Found Greška klijenta | No resource at this URL. | Typos, deleted pages, wrong routes. Should return a helpful page. |
| 405 | Method Not Allowed Greška klijenta | The URL exists but not for this method; Allow header lists the valid ones. | POST to a static file, GET on a webhook endpoint. |
| 406 | Not Acceptable Greška klijenta | No representation matches the Accept headers. | Rare; strict content negotiation. |
| 407 | Proxy Authentication Required Greška klijenta | Authenticate with the proxy first. | Corporate proxies. |
| 408 | Request Timeout Greška klijenta | The server gave up waiting for the request. | Slow clients; browsers retry silently. |
| 409 | Conflict Greška klijenta | The request conflicts with the current state. | Duplicate create, version mismatch, edit collisions. |
| 410 | Gone Greška klijenta | Permanently removed, and the server knows it. | Tells search engines to drop the URL faster than 404. |
| 411 | Length Required Greška klijenta | Content-Length header missing. | Some servers for chunked uploads. |
| 412 | Precondition Failed Greška klijenta | An If-* condition failed. | Optimistic concurrency with ETags (If-Match). |
| 413 | Content Too Large Greška klijenta | Body exceeds the limit. | nginx client_max_body_size, upload limits. |
| 414 | URI Too Long Greška klijenta | The URL exceeds the limit (typically 8 KB). | Huge GET query strings; use POST. |
| 415 | Unsupported Media Type Greška klijenta | The Content-Type is not supported. | Sending form data where JSON is expected. |
| 416 | Range Not Satisfiable Greška klijenta | The Range header is outside the file. | Broken resumable downloads. |
| 417 | Expectation Failed Greška klijenta | The Expect header cannot be met. | Old proxies with Expect: 100-continue. |
| 418 | I'm a teapot Greška klijenta | April Fools RFC 2324. | Easter eggs; some sites use it to reject bots. |
| 421 | Misdirected Request Greška klijenta | Sent to a server that cannot produce a response for this host. | HTTP/2 connection reuse across hostnames with the wrong certificate. |
| 422 | Unprocessable Content Greška klijenta | Syntactically valid but semantically wrong. | Validation errors in REST APIs (Rails, Laravel, GitHub). |
| 423 | Locked Greška klijenta | WebDAV: resource is locked. | |
| 424 | Failed Dependency Greška klijenta | WebDAV: a previous request failed. | |
| 425 | Too Early Greška klijenta | The server will not process a request that might be replayed (TLS 1.3 0-RTT). | |
| 426 | Upgrade Required Greška klijenta | Switch to a different protocol. | Forcing TLS or HTTP/2. |
| 428 | Precondition Required Greška klijenta | The request must be conditional. | APIs enforcing If-Match to prevent lost updates. |
| 429 | Too Many Requests Greška klijenta | Rate limit hit; Retry-After says when to try again. | API throttling, login brute-force protection, Cloudflare rate limiting. |
| 431 | Request Header Fields Too Large Greška klijenta | Headers exceed the limit. | Huge cookies. |
| 451 | Unavailable For Legal Reasons Greška klijenta | Blocked by a legal demand. | Geo-blocking for GDPR, court orders. |
| 500 | Internal Server Error Greška servera | The server hit an unexpected error. | Uncaught exceptions, misconfiguration. Check the server logs, not the browser. |
| 501 | Not Implemented Greška servera | The server does not support the method. | Rare; PATCH on old servers. |
| 502 | Bad Gateway Greška servera | A proxy got an invalid response from the upstream. | App server crashed or not listening; nginx/HAProxy/Cloudflare in front of a dead backend. |
| 503 | Service Unavailable Greška servera | Temporarily unable to handle the request. | Maintenance, overload, all backends down. Send Retry-After. |
| 504 | Gateway Timeout Greška servera | The upstream did not answer in time. | Slow backend behind a proxy (proxy_read_timeout, Cloudflare’s 100 s limit). |
| 505 | HTTP Version Not Supported Greška servera | The HTTP version is not supported. | Rare. |
| 507 | Insufficient Storage Greška servera | WebDAV: out of space. | |
| 508 | Loop Detected Greška servera | WebDAV: infinite loop. | |
| 510 | Not Extended Greška servera | Further extensions required. | Rare. |
| 511 | Network Authentication Required Greška servera | Log in to the network first. | Captive portals in hotels and airports. |
| 520 | Cloudflare: Unknown Error Cloudflare | The origin returned something Cloudflare could not interpret (empty reply, invalid headers, > 16 KB headers). | Origin resets the connection or sends garbage. |
| 521 | Cloudflare: Web Server Is Down Cloudflare | Cloudflare could not connect to the origin on the port. | Origin firewall blocking Cloudflare IPs, web server stopped. |
| 522 | Cloudflare: Connection Timed Out Cloudflare | TCP handshake with the origin timed out. | Origin overloaded or unreachable, wrong DNS IP. |
| 523 | Cloudflare: Origin Is Unreachable Cloudflare | No route to the origin. | Wrong IP in DNS, origin network down. |
| 524 | Cloudflare: A Timeout Occurred Cloudflare | TCP connected but the origin did not send a response within 100 seconds. | Slow scripts, long reports, big uploads; move the work async. |
| 525 | Cloudflare: SSL Handshake Failed Cloudflare | TLS handshake with the origin failed. | Full (strict) mode without a valid origin certificate, cipher mismatch. |
| 526 | Cloudflare: Invalid SSL Certificate Cloudflare | Origin certificate not trusted (Full strict). | Self-signed origin cert; use a Cloudflare Origin Certificate. |
| 530 | Cloudflare: Origin DNS Error / 1xxx Cloudflare | Returned with a 1xxx error code in the body. | Tunnel down, DNS error, bans. |