The ABCs of HTTP Status Codes

If you’ve ever wondered about the three-digit numbers that appear when you’re surfing the web, you’ve come to the right place. These are HTTP status codes, crucial for the web browsing experience. Understanding these codes can assist in troubleshooting issues and optimizing your website for improved performance and user experience.

Error 404 exampleError 404 example

HTTP, or Hypertext Transfer Protocol, is the backbone of data communication on the World Wide Web. The HTTP status codes are the server’s communication method, informing you about the outcome of a page view request. These codes fall into few categories, ranging from 2xx (successful responses) to 5xx (server error responses). Each category provides specific information about the request’s status.

In this post, we’ll dissect the most common HTTP status codes, explaining what they actually mean.

2xx Success

200 OK

This is the standard response for successful HTTP requests. The actual response will depend on the request method used. For example, a GET request might retrieve data, while a POST request might update it.

202 Accepted

The request has been accepted for processing, but the processing has not been completed. The request might or might not eventually be acted upon, as it might be disallowed when processing actually takes place.

206 Partial Content

The server is delivering only part of the resource (byte serving) due to a range header sent by the client.

3xx Redirection

300 Multiple Choices

Indicates multiple options for the resource that the client may follow.

301 Moved Permanently

This means that the URL of the requested resource has been changed permanently. The new URL is given in the response.

304 Not Modified

Indicates that the resource has not been modified since the version specified by the request headers If-Modified-Since or If-None-Match.

307 Temporary Redirect

In this case, the request should be repeated with another URI; however, future requests should still use the original URI.

4xx Client Errors

400 Bad Request

This status code indicates that the server could not understand the request due to invalid syntax.

401 Unauthorized

This means the client must authenticate itself to get the requested response.

403 Forbidden

The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource.

404 Not Found

The server can not find the requested resource. This status code can be used when the server does not wish to disclose whether it has the requested information.

408 Request Timeout

The server timed out waiting for the request. According to HTTP specifications: “The client did not produce a request within the time that the server was prepared to wait. The client MAY repeat the request without modifications at any later time.”

429 Too Many Requests

The user has sent too many requests in a given amount of time (“rate limiting”).

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 was acting as a gateway or proxy and received an invalid response from the upstream server.

503 Service Unavailable

The server is not ready to handle the request. This can occur if the server is down for maintenance or overloaded.

504 Gateway Timeout

The server was acting as a gateway or proxy and did not receive a timely response from the upstream server.

507 Insufficient Storage (WebDAV; RFC 4918)

The server is unable to store the representation needed to complete the request.

Conclusion

We’ve come a long way in our journey to understand HTTP status codes. From the informational 1xx codes to the dreaded 5xx server errors, we’ve covered the basics of what you need to know about these essential elements of web communication.

Remember, while encountering certain status codes like 404 Not Found or 500 Internal Server Error can be frustrating, they are there to help you understand what’s going wrong. As a website owner or developer, these codes can provide valuable insight into areas of your site that need attention.