HTTP Status Codes
A searchable reference of every HTTP status code, what it means and when to use it.
1xx — Informational
100
Continue
Request headers received; client should continue.
101
Switching Protocols
Server is switching protocols as requested.
2xx — Success
200
OK
Standard success response.
201
Created
Request succeeded and a new resource was created.
202
Accepted
Request accepted for processing, not yet completed.
204
No Content
Success, but no body to return.
206
Partial Content
Partial resource delivered (range requests).
3xx — Redirection
301
Moved Permanently
Resource permanently moved to a new URL.
302
Found
Resource temporarily at a different URL.
304
Not Modified
Cached version is still valid.
307
Temporary Redirect
Repeat request to new URL, keep method.
308
Permanent Redirect
Permanent redirect, keep method.
4xx — Client Error
400
Bad Request
Malformed request syntax.
401
Unauthorized
Authentication required or failed.
403
Forbidden
Authenticated but not allowed.
404
Not Found
Resource does not exist.
405
Method Not Allowed
HTTP method not supported for this resource.
409
Conflict
Request conflicts with current state.
410
Gone
Resource permanently removed.
418
I'm a teapot
The server refuses to brew coffee. (RFC 2324)
422
Unprocessable Entity
Semantic errors in request (validation).
429
Too Many Requests
Rate limit exceeded.
5xx — Server Error
500
Internal Server Error
Generic server-side failure.
501
Not Implemented
Server does not support the functionality.
502
Bad Gateway
Invalid response from upstream server.
503
Service Unavailable
Server overloaded or down for maintenance.
504
Gateway Timeout
Upstream server timed out.
Frequently asked questions
What do the status code classes mean?
1xx is informational, 2xx means success, 3xx is redirection, 4xx is a client error (the request was wrong) and 5xx is a server error (the server failed to fulfil a valid request).
What is the difference between 401 and 403?
401 Unauthorized means you are not authenticated — log in and try again. 403 Forbidden means you are authenticated but not allowed to access the resource, so retrying with the same credentials will not help.
When should I use 301 vs 302?
301 is a permanent redirect — clients and search engines update to the new URL. 302 (and 307) is temporary, signalling the original URL should still be used in future.