HTTP status codes for developers

HTTP status codes for developers

What are HTTP status codes?

An HTTP status code is a server response to a browser’s request. This means that, whenever you visit a website, your browser sends a request to the site’s server, and the server then responds to the browser’s request with a three-digit code:  HTTP status code. 

These status codes indicate whether a specific HTTP request has been successfully completed. They communicate whether requests are okay, touch-and-go, or whether something is wrong.

Understanding status codes and how to use them will help you to diagnose site errors quickly to minimize downtime on your site. You can even use some of these status codes to help search engines and people access your site; a 301 redirect, for example, will tell bots and people that a page that has moved somewhere else permanently. 

Responses are grouped in five classes. The first digit of each three-digit status code begins with one of five numbers, 1 through 5; you may see this expressed as 1xx or 5xx to indicate status codes in that range. Each of those ranges encompasses a different class of server response.

As a developer, understanding these status codes would speed up debugging process and help resolve issues quickly.

Some of the HTTP status are listed below.

HTTP status code classes:

  • 1xxs – Informational responses: The server is thinking through the request.
  • 2xxs – Success! The request was successfully completed and the server gave the browser the expected response.
  • 3xxs – Redirection: You got redirected somewhere else. The request was received, but there’s a redirect of some kind.
  • 4xxs – Client errors: Page not found. The site or page couldn’t be reached. (The request was made, but the page isn’t valid — this is an error on the website’s side of the conversation and often appears when a page doesn’t exist on the site.)
  • 5xxs – Server errors: Failure. A valid request was made by the client but the server failed to complete the request.

1xx: Information responses

MessageDescription
100: ContinueOnly a part of the request has been received by the server, but as long as it has not been rejected, the client should continue with the request.
101: Switching ProtocolsThe server switches protocol.

2xx: Successful 

MessageDescription
200: OKThe request is OK.
201: CreatedThe request is complete, and a new resource is created .
202: AcceptedThe request is accepted for processing, but the processing is not complete.
203: Non-authoritative InformationThe information in the entity header is from a local or third-party copy, not from the original server.
204: No ContentA status code and a header are given in the response, but there is no entity-body in the reply.
205: Reset ContentThe browser should clear the form used for this transaction for additional input.
206: Partial ContentThe server is returning partial data of the size requested. Used in response to a request specifying a Range header. The server must specify the range included in the response with the Content-Range header.

3xx: Redirection

MessageDescription
300 Multiple ChoicesA link list. The user can select a link and go to that location. Maximum five addresses  .
301 Moved PermanentlyThe requested page has moved to a new url .
302 FoundThe requested page has moved temporarily to a new url .
303 See OtherThe requested page can be found under a different url .
304 Not ModifiedThis is the response code to an If-Modified-Since or If-None-Match header, where the URL has not been modified since the specified date.
305 Use ProxyThe requested URL must be accessed through the proxy mentioned in the Location header.
306 UnusedThis code was used in a previous version. It is no longer used, but the code is reserved.
307 Temporary RedirectThe requested page has moved temporarily to a new url.

4xx: Client Errors

MessageDescription
400: Bad RequestThe server did not understand the request.
401: UnauthorizedThe requested page needs authentication i.e. a username and a password.
402: Payment RequiredYou can not use this code yet.
403: ForbiddenAccess is forbidden to the requested page.
404: Not FoundThe server can not find the requested page.
405: Method Not AllowedThe method specified in the request is not allowed.
406: Not AcceptableThe server can only generate a response that is not accepted by the client.
407: Proxy Authentication RequiredYou must authenticate with a proxy server before this request can be served.
408: Request TimeoutThe request took longer than the server was prepared to wait.
409: ConflictThe request could not be completed because of a conflict.
410: GoneThe requested page is no longer available .
411: Length RequiredThe "Content-Length" is not defined. The server will not accept the request without it .
412: Precondition FailedThe pre condition given in the request evaluated to false by the server.
413: Request Entity Too LargeThe server will not accept the request, because the request entity is too large.
414: Request-url Too LongThe server will not accept the request, because the url is too long. Occurs when you convert a "post" request to a "get" request with a long query information .
415: Unsupported Media TypeThe server will not accept the request, because the mediatype is not supported .
416: Requested Range Not SatisfiableThe requested byte range is not available and is out of bounds.
417: Expectation FailedThe expectation given in an Expect request-header field could not be met by this server.

5xx: Server Error

MessageDescription
500 Internal Server ErrorThe request was not completed. The server met an unexpected condition.
501 Not ImplementedThe request was not completed. The server did not support the functionality required.
502 Bad GatewayThe request was not completed. The server received an invalid response from the upstream server.
503 Service UnavailableThe request was not completed. The server is temporarily overloading or down.
504 Gateway TimeoutThe gateway has timed out.
505 HTTP Version Not SupportedThe server does not support the "http protocol" version.

I hope you find this article useful, don't forget to also drop your comment on how you feel about this topic.

Enjoy this article ? drop a comment below and add your own contribution.

Maye Jacob

Jacob Iyanuoluwa Olorunmaye

Verified Expert
I am a software engineer focused on full-stack web development with extensive experience with PHP, Laravel, Javascript, and Vue JS

Leave a Reply

Your email address will not be published. Required fields are marked *