HTTP Status Codes
Reference guide for HTTP status codes with descriptions. Free, fast, and works entirely in your browser with no sign-up required.
Continue
The server has received the request headers and the client should proceed to send the request body.
"100 Continue" — server says "keep going, I'm listening"
Switching Protocols
The server is switching protocols as requested by the client (e.g., upgrading to WebSocket).
"101" — one protocol becomes another
Processing
The server has received and is processing the request, but no response is available yet.
"102" — still chewing, haven't swallowed yet
Early Hints
Used to return some response headers before the final HTTP message, allowing resource preloading.
"103 Early Hints" — the server sends you a shopping list before the store opens
OK
The request was successful. The meaning depends on the HTTP method used.
"200 OK" — everything's fine, here's your data
Created
The request was successful and a new resource was created as a result.
"201 Created" — a new resource was born
Accepted
The request has been accepted for processing, but the processing has not been completed.
"202 Accepted" — your ticket is in the queue
No Content
The server has successfully processed the request but is not returning any content.
"204 No Content" — done, nothing to show
Partial Content
The server is delivering only part of the resource in response to a Range request.
"206 Partial" — only part of the file, just what you asked for
Multi-Status
A Multi-Status response conveys information about multiple resources in situations where multiple status codes might be appropriate.
"207 Multi-Status" — here are everyone's individual results
Moved Permanently
The URL of the requested resource has been changed permanently. The new URL is given in the response.
"301 Moved Permanently" — I've moved and given you my new forwarding address
Found
The URI of the requested resource has been changed temporarily.
"302 Found" — it's temporarily over there
See Other
The server is redirecting the user agent to a different resource, as indicated by the Location header.
"303 See Other" — go look at that other page via GET
Not Modified
There is no need to retransmit the requested resources. The client can use cached data.
"304 Not Modified" — nothing changed, use your cache
Temporary Redirect
The server sends this response to direct the client to get the requested resource at another URI with the same method.
"307" — temporary detour, same vehicle (method)
Permanent Redirect
The resource is now permanently located at another URI. Method is preserved unlike 301.
"308" — permanently moved AND method preserved
Bad Request
The server cannot or will not process the request due to something perceived to be a client error.
"400 Bad Request" — you sent gibberish
Unauthorized
The request lacks valid authentication credentials for the target resource.
"401 Unauthorized" — show me your ID
Forbidden
The server understood the request but refuses to authorize it.
"403 Forbidden" — I know who you are, but you can't come in
Not Found
The server cannot find the requested resource. The URL is not recognized.
"404 Not Found" — this page does not exist
Method Not Allowed
The request method is known by the server but is not supported by the target resource.
"405 Method Not Allowed" — you're knocking on the wrong door type
Request Timeout
The server would like to shut down this unused connection. Sent when server times out waiting for client.
"408" — you took too long to finish your sentence
Conflict
The request could not be completed due to a conflict with the current state of the target resource.
"409 Conflict" — two things are fighting over the same space
Gone
The target resource is no longer available at the origin server and this condition is likely to be permanent.
"410 Gone" — it existed once, but it's gone forever
Precondition Failed
The server does not meet one of the preconditions in the request header fields.
"412" — the conditions you set weren't met
Content Too Large
The request entity is larger than limits defined by server.
"413 Too Large" — your suitcase is too big for the overhead bin
URI Too Long
The URI requested by the client is longer than the server is willing to interpret.
"414 URI Too Long" — your address label is a novel
Unsupported Media Type
The media format of the requested data is not supported by the server.
"415 Unsupported Media Type" — I don't speak that language
Unprocessable Entity
The request was well-formed but was unable to be followed due to semantic errors.
"422" — grammatically correct but logically wrong
Locked
The resource that is being accessed is locked.
"423 Locked" — someone else has checked this out
Failed Dependency
The method could not be performed on the resource because the requested action depended on another action and that action failed.
"424" — the domino that came before you fell
Too Early
Indicates that the server is unwilling to risk processing a request that might be replayed.
"425 Too Early" — not yet, the security handshake isn't done
Upgrade Required
The server refuses to perform the request using the current protocol but might after an upgrade.
"426" — you need a better version to enter
Precondition Required
The origin server requires the request to be conditional.
"428" — you need to show conditions before we proceed
Too Many Requests
The user has sent too many requests in a given amount of time (rate limiting).
"429 Too Many" — slow down, you're flooding us
Request Header Fields Too Large
The server is unwilling to process the request because its header fields are too large.
"431" — your luggage has too many labels on it
Unavailable For Legal Reasons
The user-agent requested a resource that cannot legally be provided.
"451" — reference to Fahrenheit 451, the book about censorship
Internal Server Error
The server has encountered a situation it doesn't know how to handle.
"500" — something exploded in the engine room
Not Implemented
The request method is not supported by the server and cannot be handled.
"501" — feature not built yet
Bad Gateway
The server, while acting as a gateway or proxy, received an invalid response from the upstream server.
"502 Bad Gateway" — the middleman got a bad answer
Service Unavailable
The server is not ready to handle the request. Common causes: maintenance or overload.
"503 Service Unavailable" — closed for maintenance, back soon
Gateway Timeout
The server is acting as a gateway and cannot get a response in time from the upstream server.
"504 Gateway Timeout" — the upstream server went radio silent
HTTP Version Not Supported
The HTTP version used in the request is not supported by the server.
"505" — incompatible versions
Variant Also Negotiates
The server has an internal configuration error: transparent content negotiation results in a circular reference.
"506" — the signpost points to another signpost
Insufficient Storage
The server is unable to store the representation needed to complete the request.
"507" — the hard drive is full
Loop Detected
The server detected an infinite loop while processing the request.
"508" — the snake is eating its own tail
Not Extended
Further extensions to the request are required for the server to fulfill it.
"510" — you need extra plugins installed
Network Authentication Required
The client needs to authenticate to gain network access (captive portal).
"511" — you need to log into the WiFi first
Client Closed Request
A non-standard code used by nginx to indicate that the client closed the connection before the server answered.
"499" — client hung up mid-sentence (nginx-specific)
Web Server Returns Unknown Error
Cloudflare-specific. The origin server returned an unexpected response.
"520" — Cloudflare has no idea what your server said
Web Server Is Down
Cloudflare-specific. The origin server refused connections.
"521" — Cloudflare knocked, nobody home
Connection Timed Out
Cloudflare-specific. Cloudflare timed out contacting the origin server.
"522" — Cloudflare waited too long
A Timeout Occurred
Cloudflare-specific. Cloudflare established a TCP connection but the origin did not send a response in time.
"524" — Cloudflare waited, origin stayed silent