📊 HTTP Status Codes = Server’s Response
200 OK, 404 Not Found, 500 Server Error. Status codes tell what happened. Know them for debugging.
📝 Status Code Groups
2xx: Success - 200 OK: Request successful - 201 Created: Resource created - 204 No Content: Success, no response body 3xx: Redirection - 301 Moved Permanently: URL changed - 302 Found: Temporary redirect - 304 Not Modified: Cache 4xx: Client Error - 400 Bad Request: Invalid request - 401 Unauthorized: Authentication required - 403 Forbidden: Not allowed - 404 Not Found: Resource doesn't exist - 405 Method Not Allowed: Wrong HTTP method - 429 Too Many Requests: Rate limit 5xx: Server Error - 500 Internal Server Error: Server error - 502 Bad Gateway: Proxy error - 503 Service Unavailable: Server down - 504 Gateway Timeout: Proxy timeout
🎯 Handling Status Codes
fetch('/api/users')
.then(response => {
if (response.status === 404) {
console.log('User not found');
} else if (response.status === 401) {
console.log('Unauthorized');
} else if (response.status === 500) {
console.log('Server error');
} else if (response.ok) {
return response.json();
}
throw new Error('Request failed');
})
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
// Axios (handles status codes differently)
try {
const response = await axios.get('/api/users');
console.log(response.data);
} catch (error) {
if (error.response.status === 404) {
console.log('Not found');
} else if (error.response.status === 500) {
console.log('Server error');
}
}
💡 Common Errors
- 404: Resource not found (check URL)
- 401: Need authentication (add token)
- 403: Not allowed (check permissions)
- 400: Invalid request (check payload)
- 500: Server error (check server logs)
“404 means wrong URL. 401 means need auth. Status codes tell the story. Essential for API debugging.”
