๐Ÿ’ก๐—จ๐—ป๐—ฑ๐—ฒ๐—ฟ๐˜€๐˜๐—ฎ๐—ป๐—ฑ๐—ถ๐—ป๐—ด ๐—›๐—ง๐—ง๐—ฃ ๐—ฆ๐˜๐—ฎ๐˜๐˜‚๐˜€ ๐—–๐—ผ๐—ฑ๐—ฒ๐˜€: ๐—” ๐——๐—ฒ๐—ฒ๐—ฝ ๐——๐—ถ๐˜ƒ๐—ฒ ๐—ถ๐—ป๐˜๐—ผ ๐—ฆ๐—ฒ๐—ฟ๐˜ƒ๐—ฒ๐—ฟ-๐—–๐—น๐—ถ๐—ฒ๐—ป๐˜ ๐—–๐—ผ๐—บ๐—บ๐˜‚๐—ป๐—ถ๐—ฐ๐—ฎ๐˜๐—ถ๐—ผ๐—ป?

Apurv upadhyay
DevHub: Share & Learn
5 min readOct 19, 2024
https://www.linkedin.com/in/apurvupadhyay/
http status codes

In the world of web development, HTTP status codes play a crucial role in facilitating communication between a client (like a browser) and a server. These 3-digit codes are returned with every HTTP response to indicate the result of the clientโ€™s request. Whether youโ€™re dealing with a simple page load, an API call, or complex microservices, understanding these codes is fundamental to developing reliable and efficient web applications.

What are HTTP Status Codes?

When a client sends a request to a server (e.g., a browser requesting a webpage), the server processes that request and returns a response. Along with the data, the server also returns a status code, a 3-digit number that represents the outcome of the request. These codes are divided into five different classes, each indicated by the first digit of the code.

Each code tells the client whether the request was successful, if more actions are required, or if an error has occurred, and what kind of error it is.

The Five Categories of HTTP Status Codes:

๐ŸŸฃ ๐Ÿญ๐˜…๐˜… (๐—œ๐—ป๐—ณ๐—ผ๐—ฟ๐—บ๐—ฎ๐˜๐—ถ๐—ผ๐—ป๐—ฎ๐—น)

This class of status codes indicates that the request was received and is being processed. Itโ€™s often used to keep the client informed while the server continues with the request.

โ€ข 100 Continue: The client should continue with the request, as the initial part of the request has been received.

โ€ข 101 Switching Protocols: The server is switching protocols as per the clientโ€™s request (e.g., upgrading from HTTP to WebSockets).

๐ŸŸข ๐Ÿฎ๐˜…๐˜… (๐—ฆ๐˜‚๐—ฐ๐—ฐ๐—ฒ๐˜€๐˜€)

This indicates that the clientโ€™s request was successfully received, understood, and processed by the server.

โ€ข 200 OK: The standard success response, meaning the request was successful.

โ€ข 201 Created: The request was successful, and a new resource was created (e.g., after submitting a form).

โ€ข 204 No Content: The request was successful, but thereโ€™s no content to return in the response (commonly used for DELETE requests).

๐Ÿ”ต ๐Ÿฏ๐˜…๐˜… (๐—ฅ๐—ฒ๐—ฑ๐—ถ๐—ฟ๐—ฒ๐—ฐ๐˜๐—ถ๐—ผ๐—ป)

This means further action is required by the client to complete the request. These codes often involve URL redirection.

โ€ข 301 Moved Permanently: The requested resource has been moved to a new URL, and all future requests should use the new URL.

โ€ข 302 Found: The resource is temporarily located at a different URL, but the client should continue using the original URL for future requests.

โ€ข 304 Not Modified: The resource hasnโ€™t been modified since the last request, so the client can use the cached version.

๐ŸŸ  ๐Ÿฐ๐˜…๐˜… (๐—–๐—น๐—ถ๐—ฒ๐—ป๐˜ ๐—˜๐—ฟ๐—ฟ๐—ผ๐—ฟ)

These codes indicate that there was an issue with the clientโ€™s request, such as incorrect syntax, bad data, or unauthorized access.

โ€ข 400 Bad Request: The request cannot be processed due to bad syntax or invalid parameters.

โ€ข 401 Unauthorized: Authentication is required, and the client hasnโ€™t provided valid credentials.

โ€ข 403 Forbidden: The server understands the request, but the client doesnโ€™t have permission to access the resource.

โ€ข 404 Not Found: The server canโ€™t find the requested resource. This is probably the most recognized status code and is commonly returned when a webpage doesnโ€™t exist.

๐Ÿ”ด ๐Ÿฑ๐˜…๐˜… (๐—ฆ๐—ฒ๐—ฟ๐˜ƒ๐—ฒ๐—ฟ ๐—˜๐—ฟ๐—ฟ๐—ผ๐—ฟ)

These codes indicate that the server encountered an error while processing a valid client request. The issue is usually on the server side.

โ€ข 500 Internal Server Error: A generic server error indicating something went wrong on the server.

โ€ข 502 Bad Gateway: The server, while acting as a gateway or proxy, received an invalid response from the upstream server.

โ€ข 503 Service Unavailable: The server is temporarily unavailable, usually due to maintenance or being overloaded.

Why Are HTTP Status Codes Important?

Understanding and using HTTP status codes correctly is essential for building robust applications. Hereโ€™s why they matter:

1. Efficient Communication: Status codes quickly convey the outcome of a request. This allows both the client and developer to understand what happened without needing to inspect the entire response.

2. Reliability and Troubleshooting: When an error occurs, the right status code helps developers and support teams pinpoint the issue. For example, if a client receives a 404 Not Found, they immediately know that the requested resource doesnโ€™t exist.

3. Automation: Status codes are critical in automating processes, especially in CI/CD pipelines, load balancers, and API gateways. A 200 OK can trigger the next stage of deployment, while a 503 Service Unavailable might trigger scaling actions.

4. User Feedback: Status codes help inform the user. A 403 Forbidden might show a โ€œYou donโ€™t have accessโ€ message, while a 404 Not Found might redirect the user to a custom error page.

Best Practices for Handling HTTP Status Codes:

๐Ÿ”น Use Specific Status Codes: Always use the most specific status code that accurately describes the outcome of an operation. For example, use 404 Not Found when a resource doesnโ€™t exist, instead of 400 Bad Request.

๐Ÿ”น Consistency Across Applications: Be consistent in how you implement status codes across your application. This ensures uniform responses and makes it easier to handle requests and errors predictably.

๐Ÿ”น Implement Custom Error Messages: Where applicable, send additional information in the response body or headers to provide more context on the error. For instance, include details on why a request was unauthorized in a 401 Unauthorized response.

๐Ÿ”น Log and Monitor: Logging status codes that your application sends and receives is essential for tracking performance, identifying anomalies, and debugging. Automated monitoring tools can help flag any unexpected spikes in 4xx or 5xx errors.

Real-World Scenarios Using HTTP Status Codes:

Scenario 1: Form Submission

โ€ข A user submits a form to register an account. If the submission is successful, the server returns a 201 Created status code with the details of the new user.

Scenario 2: Redirecting Users

โ€ข A website moves its content to a new URL. The server returns a 301 Moved Permanently status code, instructing the browser to go to the new location and update any bookmarks.

Scenario 3: API Rate Limiting

โ€ข An API implements rate-limiting to avoid abuse. When a client exceeds the limit, the server returns a 429 Too Many Requests status code, asking the client to retry after a certain period.

Scenario 4: Authentication Failure

โ€ข A user tries to access a restricted page without logging in. The server responds with a 401 Unauthorized status code, prompting the user to log in.

Conclusion

Although HTTP status codes may seem small in scope, they are the backbone of web communication. Understanding how and when to use these codes can greatly enhance the reliability, performance, and user experience of your application. Whether youโ€™re building an API or handling user requests on a website, using the correct status codes ensures seamless and effective server-client interactions.

Learn More:

HTTP status codes are foundational to the web and are used across nearly every interaction on the internet. If youโ€™re looking to dive deeper into status codes and best practices, hereโ€™s a great resource to explore: MDN Web Docs on HTTP Status Codes.

โค๏ธ Share Your Thoughts!

Feel free to repost โ™ป๏ธ if you found this helpful. For more great content like this follow ๐Ÿ›  Apurv Upadhyay. Until next time, happy coding! ๐Ÿš€

#HTTP #WebDevelopment #StatusCodes #ClientServer #DeveloperTips #WebStandards #APIDevelopment

--

--

DevHub: Share & Learn
DevHub: Share & Learn

Published in DevHub: Share & Learn

Stay updated on the latest in AI, new tech, and programming languages! This hub is your go-to source for insights, tutorials, and discussions on cutting-edge advancements and tools driving the future of technology. Join to learn, share, and grow in the world of innovation!

Apurv upadhyay
Apurv upadhyay

Written by Apurv upadhyay

Principal Software Engineer at PeerIslands โ€ข Microsoft Azure Certified Architect Expert & DevOps Specialist โ€ข 7x Azure Certified โ€ข ex-Microsoft, Bosch

No responses yet