Reference
HTTP status codes
What every HTTP status code means in practice, what causes it in production, and how to fix it. Each code links to a deep-dive page.
2xx — Success
OK
The standard success response. The request was received, understood, and a response body is being returned.
Created
A new resource was created as the result of the request. Typically the response of a successful POST.
No Content
The request succeeded but the response intentionally has no body. Common for DELETE.
3xx — Redirection
Moved Permanently
The resource has moved to a new URL permanently. Clients should update bookmarks; search engines transfer link equity.
Found
Temporary redirect. Resource is at a different URL right now but will be back at the original.
Not Modified
The cached version the client has is still fresh. The server returns no body, save bandwidth.
Temporary Redirect
Like 302 but explicitly preserves the original HTTP method and body.
Permanent Redirect
Permanent version of 307. Method is preserved across the redirect, link equity transfers.
4xx — Client errors
Bad Request
The request was malformed. The server can't (or won't) process it.
Unauthorized
Authentication is required and failed or wasn't provided.
Forbidden
The server understood the request and the client is authenticated, but they don't have permission.
Not Found
The server can't find a resource at the URL you requested. The most-clicked error code on the internet.
Method Not Allowed
The HTTP method (GET, POST, etc.) isn't allowed on this URL. The resource exists; you used the wrong verb.
Request Timeout
The server didn't get a complete request in time. The client should retry.
Gone
The resource used to exist but is permanently gone. More specific than 404.
Unprocessable Entity
The request was well-formed (parsed fine) but failed semantic validation.
Too Many Requests
Rate-limited. The client is sending too many requests too fast.
5xx — Server errors
Internal Server Error
Generic server-side failure. Something blew up that the server didn't have a more specific response for.
Not Implemented
The server doesn't support the functionality required to fulfill this request. The right response for a stub endpoint.
Bad Gateway
A proxy or gateway in front of your app got a bad response from the upstream. Usually means your app crashed or isn't responding.
Service Unavailable
The server is temporarily unavailable — overloaded, in maintenance, or intentionally not accepting traffic.
Gateway Timeout
A proxy in front of your app waited too long for an upstream response and gave up.