These mean the request was received and is being processed.
100 Continue — Server received initial request headers.
101 Switching Protocols — Protocol change accepted (e.g. HTTP → WebSocket).
102 Processing — Server is still processing the request.
These indicate the request succeeded.
200 OK — Request successful.
201 Created — Resource created successfully.
202 Accepted — Request accepted for processing.
204 No Content — Success but no response body.
These mean the client must take additional action.
301 Moved Permanently — URL permanently changed.
302 Found — Temporary redirect.
304 Not Modified — Cached version can be used.
307 Temporary Redirect — Temporary redirect preserving method.
308 Permanent Redirect — Permanent redirect preserving method.
Problems caused by the request/client side.
400 Bad Request — Invalid request syntax.
401 Unauthorized — Authentication required.
403 Forbidden — Access denied.
404 Not Found — URL/resource not found.
405 Method Not Allowed — HTTP method not supported.
406 Not Acceptable — Cannot provide requested content type.
408 Request Timeout — Request took too long.
409 Conflict — Request conflicts with current resource state.
410 Gone — Resource permanently removed.
413 Payload Too Large — Request body too large.
414 URI Too Long — URL too long.
415 Unsupported Media Type — Unsupported content type.
429 Too Many Requests — Rate limit exceeded.
Problems on the server side.
500 Internal Server Error — Generic server failure.
501 Not Implemented — Feature not supported.
502 Bad Gateway — Invalid response from upstream server.
503 Service Unavailable — Server overloaded/down for maintenance.
504 Gateway Timeout — Upstream server timeout.
505 HTTP Version Not Supported — Unsupported HTTP version.