--- title: "HTTP status codes — every code explained" description: "Every HTTP status code from 100 to 511, in plain English: what it means, what causes it, and how to fix it as a visitor or as the site owner." url: https://atoneplace.net/error/ site: "At One Place" --- # HTTP status codes Every HTTP status code a browser or API can return, what each one actually means, and what to do about it — separated by whether you are visiting the site or running it. ## 1xx — Informational - [100 Continue](https://atoneplace.net/error/100/) — The server has read your request headers and wants you to send the body. - [101 Switching Protocols](https://atoneplace.net/error/101/) — The connection is being upgraded from HTTP to another protocol, usually WebSockets. - [102 Processing](https://atoneplace.net/error/102/) — A WebDAV server is still working on a long request and is telling the client not to time out. - [103 Early Hints](https://atoneplace.net/error/103/) — The server sends resource hints early so the browser can start downloading assets before the real response is ready. - [104 Upload Resumption Supported](https://atoneplace.net/error/104/) — A provisional code signalling that the server supports resumable uploads. ## 2xx — Success - [200 OK](https://atoneplace.net/error/200/) — The request worked and the response contains what was asked for. - [201 Created](https://atoneplace.net/error/201/) — The request succeeded and a new resource was created as a result. - [202 Accepted](https://atoneplace.net/error/202/) — The request was accepted for processing, but the work has not finished yet. - [203 Non-Authoritative Information](https://atoneplace.net/error/203/) — The request succeeded, but an intermediary modified the response on the way. - [204 No Content](https://atoneplace.net/error/204/) — The request succeeded and there is deliberately no body to send back. - [205 Reset Content](https://atoneplace.net/error/205/) — The request succeeded and the client should clear the form that sent it. - [206 Partial Content](https://atoneplace.net/error/206/) — The server is returning only the requested byte range of a file, not the whole thing. - [207 Multi-Status](https://atoneplace.net/error/207/) — A WebDAV response carrying separate status codes for several resources at once. - [208 Already Reported](https://atoneplace.net/error/208/) — Inside a WebDAV multi-status response, this member was already listed earlier so it is not repeated. - [226 IM Used](https://atoneplace.net/error/226/) — The server is returning a delta against a copy the client already has, rather than the whole resource. ## 3xx — Redirection - [300 Multiple Choices](https://atoneplace.net/error/300/) — The requested URL has several representations and the server is not choosing between them. - [301 Moved Permanently](https://atoneplace.net/error/301/) — The URL has permanently moved and clients should use the new one from now on. - [302 Found](https://atoneplace.net/error/302/) — The resource is temporarily at a different URL; keep using the original one. - [303 See Other](https://atoneplace.net/error/303/) — The request succeeded; now go and GET a different URL to see the result. - [304 Not Modified](https://atoneplace.net/error/304/) — Your cached copy is still current, so the server is not sending the file again. - [305 Use Proxy](https://atoneplace.net/error/305/) — A deprecated code telling the client to repeat the request through a specific proxy. - [306 (Unused)](https://atoneplace.net/error/306/) — A reserved code that was used in an old draft and is now permanently unassigned. - [307 Temporary Redirect](https://atoneplace.net/error/307/) — Like 302, but the client must repeat the request with the same method and body. - [308 Permanent Redirect](https://atoneplace.net/error/308/) — Like 301, but the client must repeat the request with the same method and body. ## 4xx — Client Error - [400 Bad Request](https://atoneplace.net/error/400/) — The server could not understand the request because something about it is malformed. - [401 Unauthorized](https://atoneplace.net/error/401/) — You need to authenticate, and either you did not or your credentials were rejected. - [402 Payment Required](https://atoneplace.net/error/402/) — Reserved for payment; in practice used by APIs to say a plan limit or billing problem is blocking the request. - [403 Forbidden](https://atoneplace.net/error/403/) — The server understood the request and is refusing to allow it, and logging in will not help. - [404 Not Found](https://atoneplace.net/error/404/) — The server is reachable and working, but there is nothing at the address you asked for. - [405 Method Not Allowed](https://atoneplace.net/error/405/) — The URL exists, but it does not accept the HTTP method you used. - [406 Not Acceptable](https://atoneplace.net/error/406/) — The server cannot produce a response in any of the formats the client said it would accept. - [407 Proxy Authentication Required](https://atoneplace.net/error/407/) — You need to authenticate with a proxy server before your request can go any further. - [408 Request Timeout](https://atoneplace.net/error/408/) — The server gave up waiting for the client to finish sending its request. - [409 Conflict](https://atoneplace.net/error/409/) — The request cannot be completed because it clashes with the current state of the resource. - [410 Gone](https://atoneplace.net/error/410/) — The resource was deliberately removed and is not coming back, and there is no forwarding address. - [411 Length Required](https://atoneplace.net/error/411/) — The server refuses to accept a request body without a Content-Length header. - [412 Precondition Failed](https://atoneplace.net/error/412/) — A condition the client attached to the request was not true, so the server did nothing. - [413 Content Too Large](https://atoneplace.net/error/413/) — The request body is bigger than the server is willing to accept. - [414 URI Too Long](https://atoneplace.net/error/414/) — The URL is longer than the server is prepared to parse. - [415 Unsupported Media Type](https://atoneplace.net/error/415/) — The server will not accept the format of the body you sent. - [416 Range Not Satisfiable](https://atoneplace.net/error/416/) — The byte range you asked for does not exist within the file. - [417 Expectation Failed](https://atoneplace.net/error/417/) — The server cannot meet the requirement set in the request's Expect header. - [418 I'm a Teapot](https://atoneplace.net/error/418/) — An April Fools' joke code from 1998 that servers still return for fun; it is reserved and has no real meaning. - [421 Misdirected Request](https://atoneplace.net/error/421/) — The request arrived at a server that is not configured to answer for that hostname. - [422 Unprocessable Content](https://atoneplace.net/error/422/) — The request is well-formed and understood, but the data in it fails the rules. - [423 Locked](https://atoneplace.net/error/423/) — The resource is locked by someone else and cannot be changed right now. - [424 Failed Dependency](https://atoneplace.net/error/424/) — The request failed because another request it depended on failed first. - [425 Too Early](https://atoneplace.net/error/425/) — The server will not risk processing a request sent in TLS early data, because it could be replayed. - [426 Upgrade Required](https://atoneplace.net/error/426/) — The server refuses to answer over this protocol and names one you must switch to. - [428 Precondition Required](https://atoneplace.net/error/428/) — The server insists the request be conditional, to stop it from silently overwriting someone else's changes. - [429 Too Many Requests](https://atoneplace.net/error/429/) — You have sent more requests than the service allows in a given period. - [431 Request Header Fields Too Large](https://atoneplace.net/error/431/) — The request headers, usually the cookies, are bigger than the server will accept. - [451 Unavailable For Legal Reasons](https://atoneplace.net/error/451/) — The content is blocked because of a legal demand — a court order, takedown notice, or government censorship. ## 5xx — Server Error - [500 Internal Server Error](https://atoneplace.net/error/500/) — Something went wrong on the server and it has no more specific code to describe it. - [501 Not Implemented](https://atoneplace.net/error/501/) — The server does not support the functionality needed to fulfil the request, usually the HTTP method itself. - [502 Bad Gateway](https://atoneplace.net/error/502/) — A proxy or gateway reached the server behind it and got back a broken response, or none at all. - [503 Service Unavailable](https://atoneplace.net/error/503/) — The server is temporarily unable to handle the request, usually because it is overloaded or in maintenance. - [504 Gateway Timeout](https://atoneplace.net/error/504/) — A proxy or gateway waited for the server behind it and gave up before an answer arrived. - [505 HTTP Version Not Supported](https://atoneplace.net/error/505/) — The server refuses to handle the version of HTTP used in the request. - [506 Variant Also Negotiates](https://atoneplace.net/error/506/) — A content negotiation misconfiguration: the chosen variant is itself a negotiating resource, so the server loops. - [507 Insufficient Storage](https://atoneplace.net/error/507/) — The server cannot store what the request needs it to store — it is out of space or over quota. - [508 Loop Detected](https://atoneplace.net/error/508/) — The server stopped an operation because it was going round in circles. - [510 Not Extended](https://atoneplace.net/error/510/) — An obsolete code from an abandoned extension framework; the server wanted extra information the request did not carry. - [511 Network Authentication Required](https://atoneplace.net/error/511/) — You need to log in to the network itself — this is a captive portal, not the site you asked for. - [520 Web Server Returned an Unknown Error](https://atoneplace.net/error/520/) — Cloudflare reached the origin server but got back a response it could not make sense of. - [521 Web Server Is Down](https://atoneplace.net/error/521/) — Cloudflare could not connect to the origin server because it refused the connection. - [522 Connection Timed Out](https://atoneplace.net/error/522/) — Cloudflare tried to open a connection to the origin server and never got a reply. - [523 Origin Is Unreachable](https://atoneplace.net/error/523/) — Cloudflare cannot route to the origin server at all — as far as the network is concerned, it does not exist. - [524 A Timeout Occurred](https://atoneplace.net/error/524/) — Cloudflare connected to the origin successfully but the origin did not finish responding in time. - [525 SSL Handshake Failed](https://atoneplace.net/error/525/) — The TLS handshake between Cloudflare and the origin server failed. - [526 Invalid SSL Certificate](https://atoneplace.net/error/526/) — The origin server presented a TLS certificate that Cloudflare could not validate. - [527 Railgun Error](https://atoneplace.net/error/527/) — A retired Cloudflare error about a failed connection to a Railgun listener. - [530 Origin DNS Error](https://atoneplace.net/error/530/) — A Cloudflare error shown alongside a 1xxx error code that carries the real explanation. ## Sources - Hypertext Transfer Protocol (HTTP) Status Code Registry — IANA (https://www.iana.org/assignments/http-status-codes/) - RFC 9110: HTTP Semantics — IETF (https://www.rfc-editor.org/rfc/rfc9110.html)