HTTP Status Codes
HTTP status codes are standardized messages sent by web servers in response to client requests. They provide crucial information about the outcome of HTTP requests, helping developers and users understand what happened during the communication between the client and server.
From informational responses to success indicators, redirections, client errors, and server issues, these codes form the backbone of web communication. Below, you'll find a comprehensive guide to the most common HTTP status codes, their meanings, and practical examples of when you might encounter them.
If you need to check your link for redirects and know which HTTP Status Code it returns, you can use our Check Redirects Online tool.
1xx - Informational
100 Continue
The server has received the request headers and the client should proceed to send the request body.
Example Scenario:
When uploading a large file, the client might send a request with the "Expect: 100-continue" header. The server responds with a 100 Continue status, signaling that the client should proceed with sending the file data.
Example Request:
POST /upload HTTP/1.1
Host: example.com
Content-Length: 5000000
Expect: 100-continue
Example Response:
HTTP/1.1 100 Continue
(followed by the actual file upload)
2xx - Success
200 OK
The request was successful. The meaning of success varies depending on the HTTP method.
Example Scenario:
A client requests a web page, and the server successfully returns the content.
Example Request:
GET /index.html HTTP/1.1
Host: www.example.com
Example Response:
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 1234
3xx - Redirection
301 Moved Permanently
The requested resource has been permanently moved to a new URL.
Example Scenario:
A website has changed its domain from https://old-domain.com to https://new-domain.com.
Example Request:
GET /page.html HTTP/1.1
Host: old-domain.com
Example Response:
HTTP/1.1 301 Moved Permanently
Location: https://new-domain.com/page.html
302 Found
The requested resource has been temporarily moved to a different URL.
Example Scenario:
An e-commerce site temporarily redirects users from a product page to a special sale page.
Example Request:
GET /product/123 HTTP/1.1
Host: www.example-shop.com
Example Response:
HTTP/1.1 302 Found
Location: https://www.example-shop.com/sale/summer-special
307 Temporary Redirect
The requested resource has been temporarily moved to another URL, and the original HTTP method should be used for the redirected request.
Example Scenario:
A web service temporarily redirects POST requests to a backup server during maintenance.
Example Request:
POST /api/data HTTP/1.1
Host: api.example.com
Content-Type: application/json
{"key": "value"}
Example Response:
HTTP/1.1 307 Temporary Redirect
Location: https://backup-api.example.com/api/data
4xx - Client Errors
400 Bad Request
The server cannot or will not process the request due to an apparent client error.
Example Scenario:
A client sends a malformed JSON payload in an API request.
Example Request:
POST /api/users HTTP/1.1
Host: api.example.com
Content-Type: application/json
{
"name": "John Doe",
"email": "johndoe@example.com",
"age": "thirty"
}
Example Response:
HTTP/1.1 400 Bad Request
Content-Type: application/json
Content-Length: 85
{
"error": "Bad Request",
"message": "Age must be a number"
}
403 Forbidden
The server understood the request but refuses to authorize it.
Example Scenario:
A user tries to access an admin panel without proper permissions.
Example Request:
GET /admin/dashboard HTTP/1.1
Host: www.example.com
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
Example Response:
HTTP/1.1 403 Forbidden
Content-Type: text/html
Content-Length: 1234
<html>
<body>
<h1>403 Forbidden</h1>
<p>You do not have permission to access this resource.</p>
</body>
</html>
404 Not Found
The requested resource could not be found on the server.
Example Scenario:
A user tries to access a page that doesn't exist on the website.
Example Request:
GET /non-existent-page.html HTTP/1.1
Host: www.example.com
Example Response:
HTTP/1.1 404 Not Found
Content-Type: text/html
Content-Length: 1234
5xx - Server Errors
500 Internal Server Error
A generic error message when an unexpected condition was encountered on the server.
Example Scenario:
A server-side script encounters an unhandled exception while processing a request.
Example Request:
GET /process-data.php HTTP/1.1
Host: www.example.com
Example Response:
HTTP/1.1 500 Internal Server Error
Content-Type: text/html
Content-Length: 1234
502 Bad Gateway
The server, while acting as a gateway or proxy, received an invalid response from an upstream server.
Example Scenario:
A load balancer is unable to get a valid response from one of the backend application servers.
Example Request:
GET /api/user-data HTTP/1.1
Host: api.example.com
Example Response:
HTTP/1.1 502 Bad Gateway
Content-Type: text/html
Content-Length: 1234
<html>
<body>
<h1>502 Bad Gateway</h1>
<p>The server encountered a temporary error and could not complete your request.</p>
</body>
</html>
503 Service Unavailable
The server is currently unable to handle the request due to temporary overloading or maintenance of the server.
Example Scenario:
An e-commerce website is temporarily down for maintenance during a planned upgrade.
Example Request:
GET /shop HTTP/1.1
Host: www.example-shop.com
Example Response:
HTTP/1.1 503 Service Unavailable
Content-Type: text/html
Content-Length: 1234
Retry-After: 3600
<html>
<body>
<h1>503 Service Unavailable</h1>
<p>Our site is currently undergoing scheduled maintenance. Please try again in one hour.</p>
</body>
</html>