The server has received the request and is continuing the process.
| Code | Name | When It’s Used | Memory Hook |
|---|
| 100 | Continue | Client should continue sending request body | Keep going |
| 101 | Switching Protocols | Protocol upgrade (e.g., HTTP → WebSocket) | Switching lanes |
| 102 | Processing | Request received, still processing (WebDAV) | Working on it |
| 103 | Early Hints | Preload resources before final response | Heads up |
2. Success (200–299)
The request was successfully received, understood, and accepted.
| Code | Name | Typical Use | Memory Hook |
|---|
| 200 | OK | Standard successful response | All good |
| 201 | Created | Resource created (POST) | Born |
| 202 | Accepted | Accepted but not completed | In progress |
| 204 | No Content | Success with no response body | Empty but fine |
| 206 | Partial Content | Range requests (file streaming) | Just a slice |
Common API Usage
| Operation | Recommended Code |
|---|
| GET | 200 |
| POST (create) | 201 |
| PUT/PATCH | 200 or 204 |
| DELETE | 204 |
3. Redirection (300–399)
The client must take additional action to complete the request.
| Code | Name | When to Use | Memory Hook |
|---|
| 301 | Moved Permanently | Permanent redirect | Forever moved |
| 302 | Found | Temporary redirect | Moved for now |
| 303 | See Other | Redirect after POST | Look elsewhere |
| 304 | Not Modified | Cached version still valid | Use your copy |
| 307 | Temporary Redirect | Temporary, method preserved | Same method, temp |
| 308 | Permanent Redirect | Permanent, method preserved | Same method, forever |
4. Client Errors (400–499)
The request contains bad syntax or cannot be fulfilled.
| Code | Name | Typical Cause | Memory Hook |
|---|
| 400 | Bad Request | Malformed syntax / invalid JSON | You messed up |
| 401 | Unauthorized | Missing or invalid authentication | Who are you |
| 403 | Forbidden | Authenticated but no permission | Not allowed |
| 404 | Not Found | Resource does not exist | Gone missing |
| 405 | Method Not Allowed | Incorrect HTTP method | Wrong verb |
| 406 | Not Acceptable | Cannot produce requested format | Wrong format |
| 408 | Request Timeout | Client took too long | Too slow |
| 409 | Conflict | Resource state conflict | Version clash |
| 410 | Gone | Permanently removed resource | Really gone |
| 413 | Payload Too Large | Request body too large | Too heavy |
| 415 | Unsupported Media Type | Invalid Content-Type | Wrong type |
| 422 | Unprocessable Entity | Validation failed | Data invalid |
| 429 | Too Many Requests | Rate limiting triggered | Slow down |
Authentication Quick Reference
| Scenario | Code |
|---|
| No token | 401 |
| Invalid token | 401 |
| Valid token, no permission | 403 |
5. Server Errors (500–599)
The server failed to fulfill a valid request.
| Code | Name | Meaning | Memory Hook |
|---|
| 500 | Internal Server Error | Generic server failure | Something broke |
| 501 | Not Implemented | Feature not supported | Not built |
| 502 | Bad Gateway | Invalid upstream response | Bad middleman |
| 503 | Service Unavailable | Server overloaded or down | Come back later |
| 504 | Gateway Timeout | Upstream service timeout | Upstream too slow |
Rare but Useful Codes
| Code | Meaning |
|---|
| 418 | I’m a teapot (RFC joke code) |
| 425 | Too Early (retry unsafe request) |
| 451 | Unavailable for Legal Reasons |
Summary
| Code Prefix | Meaning |
|---|
| 1xx | Wait |
| 2xx | Success |
| 3xx | Redirect |
| 4xx | Client error |
| 5xx | Server error |