What are Status Codes? A Complete Guide to HTTP Status Codes?

  • Share on

  • Share on

  • Share on

HTTP status codes carry great importance for every web development company. Interestingly, these codes are also necessary for most SEO professionals. A website user will not find these helpful, but a website owner must be careful about them.

It is because a hypertext transfer protocol or HTTP status code directly affects website health. This article shares a complete guide about these codes and their meetings. Before proceeding further, let us learn what a status code means.

What Are HTTP Status Codes?

Image Source

HTTP status codes can be considered as server responses to the browser. They include a 3-digit number, which defines the server status. The details of their functionality are provided by the World Wide Web Consortium, also known as the W3C.

You cannot consider a status code as a part of the website content. These are the only a way of communication between the server and the browser. It helps to understand if a website's status is redirected, successful, or terminated.

By understanding the different types of status codes, one can easily minimize website issues. Many of us come across the 404 Not Found status code. Knowing about the details and categorization of this code can help you understand all other codes too. Below is a guide to different HTTP status codes to help beginners and every SEO marketing company in the USA.

A Guide to Different HTTP Status Codes

Image Source

There are more than 60 HTTP status codes available on the Internet. These are categorized into five different types.

While each state code contains three digits, the first digit of each code falls between 1 and5. 

It is usually written as 1XX to 5XX. The first digit is used to define the status code category. Whereas, the last two digits contain specific information.

The five different status code categories are discussed below.

The Different Categories of HTTP Status Codes

1xx – Informational

This category defines that the HTTP request sent by the browser is successfully received by the server and will continue processing further. Because it is a temporary response, most clients will not encounter it.

2XX – Success

This category defines that the HTTP request sent by the browser is successfully received, understood, and processed by the browser. Also, it helps to understand that the browser easily accepts the expected information.

3XX – Redirection

This category defines that the HTTP request sent by the server is successfully received but moved to a new location by the browser. It means that the user will be redirected.

4XX – Client Error

This category indicates that the HTTP request cannot be processed by the server due to a client-side error. For instance, authorization problems, bad syntax, and page unavailability. 

The response further explains whether it is a permanent or a temporary issue.

5XX – Server Error

This category defines that the server is unable to process a valid HTTP request due to an encountered error. The response further describes the overall situation and explains whether it is a permanent or a temporary error.

A Complete List of Different HTTP Status Codes

Image Source

The list below defines the five different HTTP status code groups and their functions.

Status code

Meaning

1xx Informational

 

100

Continue

101

Switching protocols

102

Processing

103

Early Hints

 

 

2xx Successful

 

200

OK

201

Created

202

Accepted

203 

Non-Authoritative Information

204

No Content

205

Reset Content

206

Partial Content

207

Multi-Status

208

Already Reported

226

IM Used

 

 

3xx Redirection

 

300

Multiple Choices

301

Moved Permanently

302

Found (Previously "Moved Temporarily")

303

See Other

304

Not Modified

305

Use Proxy

306

Switch Proxy

307

Temporary Redirect

308

Permanent Redirect

 

 

4xx Client Error

 

400

Bad Request

401

Unauthorized

402

Payment Required

403

Forbidden

404

Not Found

405

Method Not Allowed

406

Not Acceptable

407

Proxy Authentication Required

408

Request Timeout

409

Conflict

410

Gone

411

Length Required

412

Precondition Failed

413

Payload Too Large

414

URI Too Long

415

Unsupported Media Type

416

Range Not Satisfiable

417

Expectation Failed

418

I'm a Teapot

421

Misdirected Request

422

Unprocessable Entity

423

Locked

424

Failed Dependency

425

Too Early

426

Upgrade Required

428

Precondition Required

429

Too Many Requests

431

Request Header Fields Too Large

451

Unavailable For Legal Reasons

 

 

5xx Server Error

 

500

Internal Server Error

501

Not Implemented

502

Bad Gateway

503

Service Unavailable

504

Gateway Timeout

505

HTTP Version Not Supported

506

Variant Also Negotiates

507

Insufficient Storage

508

Loop Detected

510

Not Extended

511

Network Authentication Required

 

A Detailed Explanation of All HTTP Status Codes

Each of the HTTP status codes listed earlier shares different meanings. Read below to understand the meaning of all the status codes discussed in five different categories.

1XX HTTP Status Codes

A 1XX HTTP status code is a temporary one that is given during the continuity of a processing request. Most users do not come across it as it is not the final response. It is further divided into four different categories.

100 – Continue

This code means that the server has successfully received the first part of the browser’s request. As soon as it accepts and processes the entire request, the final response will be delivered.

As a result, the user must keep sending the request while ignoring the status code.

101 – Switching Protocols

This status code means that the server understands the header field request termed as ‘Upgrade’ and will further comply with the application protocol’s change.

However, the user must know that this response only happens in case the server finds it beneficial.

102 – Processing

This status code means that the server has successfully received the entire request and is now processing it. Do not expect any response at this point as the request is still under process.

A user may only come across this status code in case the request takes more than a regular time to finish.

103 – Early Hints

This status code is utilized along with the link header. It lets the browser preload accessory resources as the server prepares for a response in the meantime.

2XX HTTP Status Codes

A website owner is most interested in viewing a 2XX status code. It denotes the successful processing, understanding, and acceptance of a request by the server. Also, it helps in making sure that all web pages are resources that return a code from this particular category.

It proves that any browser can reach our website easily, and visitors can use it without encountering errors. These codes are further divided into 10 different categories.

200 – Ok

This status code indicates that this request was successfully received. However, its overall response depends on the request method used. There exist eight different request methods.

  • GET – It requests a particular resource representative and is used to retrieve data only.
  • HEAD – It requests a method similar to GET, but it is independent of a message body.
  • POST – It submits an entity to the assigned resource while altering the server’s state.
  • PUT – It replaces the entire resource representations with the help of the request payload.
  • DELETE – It removes the response specified by the server.
  • OPTIONS – It defines multiple communication options specified for the resource.
  • TRACE – It performs a message loop-back test from the path to the assigned resource.
  • PATCH – It partially modifies a resource.

201 – Created

This status code means that the server has successfully completed the request while creating one or more new resources. You can consider it as a typical response send it is a non-capital status directly after a POST or a PUT method.

202 – Accepted

This status code means that the request is accepted for processing by the server but is incomplete yet. It is a non-committal status, which means that the request may or may not be completed while the overall processing takes place.

203 – Non-Authoritative Response

This status code indicates a successful request. However, the original information sent by the browser has been altered by a transforming proxy. As a result, the server is forced to copy data from a third party.

Also, this code informs a recipient about any change in the information to prevent any impact on the final response. That is why this code is usually used to mirror or backup another resource.

204 – No Content

This status code means that the request is completed by the server. However, there is no further content available to send as a response.

In this case, the user agent often updates the cached headers for the new resource.

205 – Reset Content

This status code means that the server has successfully fulfilled the request. However, the user is said to reset the document view to its original state.

206 – Partial Content

This status code is sent by the server in response to a Range header sent by a client who tends to request only a part of the resource.

207 – Multi-Status

This status code is used to convey the status of multiple resources. Also, the server uses this code in situations like partial, success, or failure.

208 – Already Reported

This status code is used inside the response element DAV: propstat. It restricts enumerating the multiple binding’s internal members to the same collection repeatedly.

226 – IM Used

This status code indicates that the server has successfully completed the GET request. Whereas its response indicates that the resource was implemented by one or more instance manipulations.

3XX HTTP Status Codes

Redirects are not harmful to any website. Thus, they must be handled normally. A 3XX redirection HTTP status code means that the request was completed, but the resource was found at another location.

Often when users try to access a website from an old URL, it gets redirected to the new location. These codes are further divided into nine categories.

300 – Multiple Choices

This status code means that the request offers multiple possible responses. Thus, the user is said to choose one among these. If the request method is other than HEAD, the response will come up with a list of locations and resource characteristics to help the user agent choose easily.

301 – Moved Permanently

This status code means that the requested resource has been permanently moved to a new URL. Any differences to this resource in the future must utilize one of the new addresses listed in the response.

302 – Found (Previously, ‘Moved Temporarily')

This status code was previously known as Moved Temporarily. It means that the requested resource is temporarily moved to a new URL. Therefore, any requests in the future must be directed to the current resource address included in the response.

In case the user uses the HEAD request method, the server response would include a hypertext note that mentions a link to the new temporary URL. However, if this method is not used, a user will not be redirected to the new URL without seeking permission.

303 – See Other

This status code is sent by the server to redirect the user to a different URL using the GET method.

304 – Not Modified

This status code means that the response has not encountered any modification. Hence, the client is free to use the cached version of the requested URL. Most often, it happens if the client utilizes the GET or HEAD request method.

Alternatively, it can happen if the headers If-None-Match or If-Modified-Since are used. There are a few ways to fix the 304 HTTP status code and get back to work.

305 – Unused (Previously ‘Use Proxy’)

This status code was previously known as Use Proxy. As the name implies, it is used by the server to ask the client to access the requested resource by using a proxy. The response will also include the URL within the location field.

306 – Unused (‘Switch Proxy’)

This status code was previously known as Switch Proxy. It was used by the server to inform the client to access the requested resource through a particular proxy.

However, this code is no longer in use and is reserved for any use in the future.

307 – Temporary Redirect

This status code is used by the server to temporarily redirect the client to a new resource address. Because it is a temporary redirection, the requested method may remain the same.

308 – Permanent Redirect

This status code means that the requested URL has been permanently moved to a new resource mentioned in the header. It is considered a code similar to the 301 HTTP status code. However, it slightly differs because the client is restricted to change the request method in this case.

4XX HTTP Status Codes

A website owner must do everything to avoid these status codes. A 4XX status code indicates that the user will not be able to find what they are looking for on a website.

It leads to a bad user experience and is further divided into multiple types.

400 – Bad Request

This status code means that the server could not complete the request as a result of a client-side error such as bad syntax. Also, the user is advised to modify the syntax and request.

If the 400 HTTP error occurs continuously, the user can clear cookies on the browser cache.

401 – Unauthorized

This status code means that the request has not been accessed by the server as it requires user authentication.

402 – Payment Required

This status code is an error response reserved for use in the future. It was originally used in digital payment systems but does not exist anymore.

403 – Forbidden

This status code means that the server has received the request, but the client does not have enough rights to access the resource. In case the request contains any authentication credentials, the server may have considered them insufficient.

404 – Not Found

We often come across the 404 error and keep looking for ways to fix it. It means that the server is unable to find the requested resource or is trying to hide it from an unauthorized user. Most often, the links that lead to this type of error code are known as dead or broken links.

You could also look for ways to repair and monitor broken links in this case.

405 – Method Not Allowed

This status code means that the server has recognized the requested method but does not approve it as it is not allowed.

406 – Not Acceptable

This status code is sent by the server as an invalid response. It means that the server is unable to find any authentic content for the requested resource.

The server further displays a list of identifiers and corresponding resources to help the client choose an appropriate one.

407 – Proxy Authentication Required

This status code is similar to the 401 HTTP error code. It means that the user must be able to provide authentication credentials for the requested URL.

408 – Request Timeout

This status code means that the server was unable to receive the complete message within the given duration. It may occur sometimes due to a poor connection.

409 – Conflict

This status code means that the server is unable to complete the request due to a conflict with the requested resource. Also, the information regarding the problem is displayed to make sure the user can fix it and continue.

410 – Gone

This status code means that the requested URL is moved permanently without the addition of any forwarding address. It indicates that the website owner has done it intentionally and wishes to remove any leading links to this URL.
As a result, search engines remove this page permanently from the index as soon as the code occurs.

411 – Length Required

This status code means that the server rejected the requested resource as it requires a Content-Length header.

412 – Precondition Failed

This status code indicates that the server failed to meet one or more free conditions discussed in the request header field.

413 – Payload Too Large

This status code means that the server refuses to accept the request because the payload is larger than the server's limit to accept or process.

414 – URL Too Long

This status code means that the server refuses to interpret the requested resource because the URL is too long.

415 – Unsupported Media Type

This status code means that the server has refused the client's request because the resource uses an unsupported media format.

416 – Range Not Satisfiable

This status code means that the server is unable to fulfill the user's request. It happens because the resource does not contain the specified range or its value is invalid.

417 – Expectation Failed

This status code means that the server was unable to meet the requirements indicated by the request header field Expect.

418 – Unused (Previously ‘I'm a Teapot’)

This status code was previously known as I’m a teapot. It was a reference to an old 1998 April fool’s joke entitled “Hypertext Coffee Pot Control Protocol.” It indicated that the server rejects to brew coffee as it is a teapot.

Currently, this status code is reserved for future use.

421 – Misdirected Request

This status code means that the client has requested resources from a server that is not configured to produce any response.

422 – Unprocessable Entity

This status code means that the client has requested resources from the right server, but it is still unable to process them because of semantic errors.

423 – Locked

This status code indicates that the request methods resource has been locked. Such type of a server response most probably contains a precondition or a post-condition code. For instance, Lock-Token-Submitted or No-Conflicting-Lock respectively.

424 – Failed Dependency

This status code means that the request has failed because it was dependent on another request, which failed as well.

425 – Too Early

 This status code means that the server is refusing to process a request as it may be replayed.

426 – Upgrade Required

This status code means that the server refuses to process the request unless the user agent upgrades to a different protocol.

428 – Precondition Required

This status code means that the server requires a Conditional Request to ensure the authenticity of the user agent.

429 – Too Many Requests

This status code means that the client has sent too many requests together. In response, the server tries to explain it to the user through a Retry-After header. It helps to understand how long the client has to wait before sending another request.

431 – Request Header Fields Too Large

This status code means that the server has refused to process the request because the header fields are too large. To fix this type of error, the user must be able to reduce the size of the request header.

451 – Unavailable For Legal Reasons

This status code means that the client has requested a resource from the server that has been removed due to legal reasons. For instance, blocked web pages or web websites. This type of code can directly impact search engines.

5XX HTTP Status Codes

Website owners facing 5XX HTTP server errors must look out for their servers immediately. Owners who host their websites can try debugging to fix the issue. In case you are using an external host provider, get in touch with them and solve the problem.

These status codes are further divided into multiple categories.

500 – Internal Server Error

This status code means that the server was unable to process the request because an unexpected error prevented it from doing so.

501 – Not Implemented

This status code means that the server will not complete the client's request because it requires a method that is not supported. The easiest methods that the server support

502 – Bad Gateway

This status code means that the server was unable to fulfill the client's request because it came across an invalid response.

503 – Service Unavailable

This status quote means that the server is currently unable to handle the request and is unavailable at the moment. It usually happens when the server is down due to an overload or for maintenance.

504 – Gateway Timeout

This status code indicates that the server was unable to complete the user agent's request because it did not receive the required response within the given duration.

505 – HTTP Version Not Supported

This status code means that the server was unable to process because the request contained an unsupportive HTTP format. Also, the response contains an explanation of this problem and offers alternate solutions.

506 – Variant Also Negotiates

This status code means that the server was unable to process the request because of an internal configuration error. It also states that the chosen variant resource is configured to engage in transparent negotiation itself.

507 – Insufficient Storage

This status code means that the server is unable to process the client request because it does not have enough storage for the presentation that is needed to access the request.

508 – Loop Detected

This status code means that the server was unable to process the request because it came across an infinite loop known as Depth: Infinity. It indicates to the user that the entire process has failed.

510 – Unused (Previously ‘Not Extended’)

This status code means that the server was unable to process the client request because it requires further extensions. Henceforth, it asks the user to resend the request while extending it.

511 – Network Authentication Required

This status code indicates that the server was unable to process the request as it requires client authentication. Also, it offers a link where the client can easily share the credentials required.

Wrap Up

The long story of HTTP status codes seems confusing and messy. Nevertheless, learning this can help you resolve multiple website issues quickly. These can be considered basic requirements for a website user.
As a business owner, there are certain things you should consider before hiring any digital marketing agency. Similarly, as a website owner, knowing a few HTTP status codes can be really helpful.

Previous Next
John Fernandes

John Fernandes

John Fernandes is content writer at YourDigiLab, An expert in producing engaging and informative research-based articles and blog posts. His passion to disseminate fruitful information fuels his passion for writing.