The List of HTTP Response Status Codes

The List of HTTP Response Status Codes

As a Performance Test Engineer, you will be dealing with lots of requests and their response codes during your performance tests. These…

The List of HTTP Response Status Codes

As a Performance Test Engineer, you will be dealing with lots of requests and their response codes during your performance tests. These HTTP response status codes could be really useful since they give you an insight about the status of your test runs. Simply, they give you an idea about whether a specific HTTP request has been successfully completed.

Even though there are lots of them, we can group them into five classes:

  1. Informational responses (100–199)
  2. Successful responses (200–299)
  3. Redirection messages (300–399)
  4. Client error responses (400–499)
  5. Server error responses (500–599)

1. Informational Responses

100 — Continue: This response code indicates that everything went well so far and the client should continue with the request or directly ignore it.

101 — Switching Protocols: It is sent in response to an Upgrade request custom-header from the client and indicates that the protocol the server is switching to.

102 — Processing: This response code indicates that the server has received the request and is still processing it, but no proper response is available yet.

103 — Early Hints: It is primarily created with the usage of Link custom-header and lets the user agent start preloading necessary resources.

2. Successful Responses

200 — OK: Indicates that the related request has been successful.

201 — Created: It is typically created after a successful POST request. It means that the request was successful and a new resource was created.

202 — Accepted: Request has been received but no action is taken so far. It is intended for cases where another process or server handles the request, or for batch processing.

203 — Non-Authoritative Information: Mostly used for back-ups of other resources. It indicates that the returned metadata is not exactly the same as is available from the origin server.

204 — No Content: Request was successful but no content has been returned for this request. In these cases, checking custom-headers may be useful.

205 — Reset Content: This response code tells the user agent to reset the document which sent this request in the first place.

206 — Partial Content: It is shown when the Range custom-header is sent from the client to request only part of a resource.

207 — Multi Status: Indicates information about multiple resources and multiple status codes.

208 — Already Reported: Used inside a <dav: propstat> response element to avoid enumerating the internal members of multiple bindings to the same collection repeatedly.

226 — IM Used: The server has fulfilled a GET request for a specific resource, and the response is a representation of the result of one or more instance-manipulations applied to the current instance.

3. Redirection Messages

300 — Multiple Choice: Indicates that the request has more than one possible response. The user agent should make the decision for one of them.

301 — Moved Permanently: URL of the requested resource has been permanently changed. The new URL should be given in the response

302 — Found: URI of the requested resource has been temporarily changed.

303 — See Other: It is sent to direct the client to get the requested resource at another URI with a GET request.

304 — Not Modified: It tells the client that the response has not been modified, so the client can continue to use the same cached version of the response.

305 — Use Proxy: Indicates that the response could only be accessed by a proxy for security reasons.

306 — unused: This response code is no longer used, however its place is reserved.

307 — Temporary Redirect: The server sends this response to direct the client to get the requested resource at another URI with the same method that was used in the prior request. It is very similar to 302 response code. But the user agent must not change the HTTP method used.

308 — Permanent Redirect: This means that the resource is now permanently located at another URI. New URI could be found at Location section in the custom-header part.

4. Client Error Responses

400 — Bad Request: The server couldn’t resolve the request because of invalid syntax.

401 — Unauthorized: The client should authenticate itself to get the requested response.

402 — Payment Required: Reserved for future use. The aim is to recommend the user to perform payment steps on digital payment systems.

403 — Forbidden: The client does not have the access right for the content. Unlike 401, the identity of the client is known by the server.

404 — Not Found: The server can not find the requested resource.

405 — Method not Allowed: The request method is known by the server but it is not supported by the target resource.

406 — Not Acceptable: This response is sent when the web server, after performing server-driven content negotiation, doesn’t find any content that conforms to the criteria given by the user agent.

407 — Temporary Redirect: Similar to 401 response but this time authentication is needed to be done by proxy.

408 — Request Timeout: This indicates the server didn’t receive a complete request message within the server’s allotted timeout period.

409 — Conflict: This response is sent when a request conflicts with the current state of the server.

410 — Gone: This is sent when the requested content has been permanently deleted from server, with no forwarding address.

411 — Length Required: Server rejected the request because the Content-Length custom-header field is not defined in the request.

412 — Precondition Failed: Pre-defined preconditions in the custom-header part didn’t meet by the server.

413 — Payload Too Large: Request entity is larger than the limits defined by the server.

414 — URI Too Long: The URI requested by the client is longer than the server is willing to interpret.

415 — Unsupported Media Type: The media format of the data is not supported.

416 — Range Not Satisfiable: The range specified by the Range custom-header field in the request cannot be fulfilled.

417 — Expectation Failed: It means the expectation indicated by the Expect request custom-header field cannot be met by server.

418 — I’m a teapot: This HTTP status is used as an Easter egg in some websites, including Google.com. The server refuses the attempt to brew coffee with a teapot.

421 — Misdirected Request: Request was directed to a server that is not able to create a response.

422 — Unprocessable Entity: The request was well-formed but was unable to be followed due to semantic errors.

423 — Locked: The resource that is being accessed is locked for security reasons.

424 — Failed Dependency: Request is failed due to failure of a previous request.

425 — Too Early: Indicates that the server is unwilling to risk processing a request that might be replayed.

426 — Upgrade Required: The server refuses to perform the request using the current protocol but might be willing to do so after the client upgrades to a different protocol.

428 — Precondition Required: The origin server requires the request to be conditional.

429 — Too Many Requests: The client has sent too many requests in a given time.

431 — Request Header Fields Too Large: Indicates that the custom-header fields of the request are too large to handle.

451 — Unavailable For Legal Reasons: The user agent requested a resource that cannot legally be provided, such as a web page censored by a government.

5. Server Error Responses

500 — Internal Server Error: Server has faced an erroneous situation and it does not know how to handle that.

501 — Not Implemented: The request method is not supported by the server.

502 — Bad Gateway: This error response indicates that the server, while working as a gateway to get a response needed to handle the request, got an invalid response during the flow.

503 — Service Unavailable: The server is not ready to handle the request yet. It can be because the server is down for maintenance or it is overloaded.

504 — Gateway Timeout: The server is acting like a gateway and it cannot get a response in a given time.

505 — HTTP Version Not Supported: The HTTP version used in the request is not supported by that specific server.

506 — Variant Also Negotiates: The server has an internal configuration problem: the chosen variant resource is configured to engage in transparent content negotiation itself, and is therefore not a proper end point in the negotiation process.

507 — Insufficient Storage: The method could not be performed on the resource because the server is unable to store the representation needed to successfully complete the request.

508 — Loop Detected: The server detected an infinite loop while processing the request.

510 — Not Extended: Further extensions to the request are required for the server to fulfill it.

511 — Network Authentication Required: The client needs to authenticate itself to gain network access.

With Loadium, you can see all these response codes and response messages provided for each request on your report screen.

Enjoy load testing with Loadium.