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.