← Technology Archive

Historical archive

Common HTTP Status Codes Explained

A practical overview of the five HTTP response status classes and frequently encountered codes such as 200, 301, 404, 500, and 503.

An HTTP status code is a three-digit number that describes the result of a server’s response. Its first digit identifies one of five response classes.

1xx: informational responses

The request has been received and processing should continue. HTTP/1.0 did not define 1xx responses, so servers generally should not send them to HTTP/1.0 clients outside experimental conditions.

2xx: successful responses

  • 200 OK: The request succeeded, and the response contains the expected headers or body.
  • 201 Created: The request succeeded and created a resource. Its URI is normally returned in the Location header. If creation cannot finish immediately, 202 Accepted may be more appropriate.
  • 202 Accepted: The server accepted the request but has not finished processing it.

3xx: redirection and caching

The client must take another action to complete the request. For redirects, the target is supplied in the Location header.

  • 301 Moved Permanently: The resource has permanently moved to a new location. Clients normally follow the new URL for GET or HEAD requests.
  • 302 Found: The resource is temporarily available at a different URI, while clients should continue using the original URI for future requests.
  • 304 Not Modified: The requested representation has not changed since the previous conditional request, so the server returns no response body and the browser can reuse its cache.

4xx: client errors

The request appears to contain an error that prevents the server from handling it.

  • 401 Unauthorized: Authentication is required.
  • 403 Forbidden: The server understood the request but refuses to fulfill it. Authenticating again will not necessarily help.
  • 404 Not Found: The server cannot find the requested resource. The response does not state whether the condition is temporary or permanent. Use 410 Gone when a resource is known to be permanently unavailable without a replacement.

5xx: server errors

The server failed while processing an apparently valid request or lacks the resources to complete it.

  • 500 Internal Server Error: An unexpected server-side condition prevented the request from completing.
  • 503 Service Unavailable: Temporary maintenance or overload prevents the server from handling the request. The condition is normally temporary.