A Quick Guide to HTTP Status Codes for Developers
Keep this handy as a reference to quickly interpret HTTP Responses.
HTTP status codes are essential for understanding the communication between a client (e.g., browser) and a server. These codes indicate the outcome of an HTTP request and help developers identify issues or successes in network communication.
It is a very good practice to stick to the general standards of status codes, many of which are defined by the Internet Engineering Task Force (IEFT), Nginx and Apache, Microsoft's Internet Information Services (IIS), AWS Elastic Load Balancer, WebDAV (RFC 4918), etc.
Why HTTP Status Codes Matter
Status codes provide essential insight into the success or failure of requests, making debugging easier. By understanding the meaning behind these codes, developers can optimize user experiences, handle errors gracefully, and ensure more reliable applications.
Categories of HTTP Status Codes
1xx: Informational
100 Continue: Server acknowledges request and client can proceed.
101 Switching Protocols: Server switches to a different protocol, as requested.
2xx: Success
200 OK: The request was successful, and the server returned the requested data.
201 Created: The request was successful, and a new resource was created.
3xx: Redirection
301 Moved Permanently: The resource has been permanently moved to a new URL.
302 Found: Temporary redirection to a different URL.
304 Not Modified: Cached version of the resource is still valid; no need to resend it.
Recommended by LinkedIn
4xx: Client Errors
400 Bad Request: The request was invalid due to client-side error.
401 Unauthorized: Authentication is required and has failed or not yet provided.
404 Not Found: The requested resource could not be found.
5xx: Server Errors
500 Internal Server Error: The server encountered an unexpected condition that prevented it from fulfilling the request.
502 Bad Gateway: The server received an invalid response from an upstream server.
503 Service Unavailable: The server is temporarily unable to handle the request (e.g., due to overload or maintenance).