elefcode

HTTP Status Codes

A quick reference to every common HTTP response status code and what it means.

1xx · Informational

The request was received and the process is continuing.

100

Continue

The client should continue with its request, or ignore the response if the request is already finished.

101

Switching Protocols

The server is switching protocols as requested by the client, such as upgrading to WebSocket.

103

Early Hints

Used to preload resources while the server prepares the final response.

2xx · Success

The request was successfully received, understood, and accepted.

200

OK

The request succeeded. The meaning depends on the method: GET returns the resource, POST returns the result of the action.

201

Created

The request succeeded and a new resource was created, typically after a POST or PUT.

202

Accepted

The request has been accepted for processing, but the processing is not complete.

204

No Content

The request succeeded but there is no content to send in the response body.

206

Partial Content

The server is delivering only part of the resource, in response to a Range header.

3xx · Redirection

Further action is needed to complete the request.

301

Moved Permanently

The resource has permanently moved to a new URL. Search engines update their links.

302

Found

The resource is temporarily at a different URL. The original URL should still be used in future requests.

303

See Other

The response can be found at another URL using GET, commonly used after a POST.

304

Not Modified

The cached version of the resource is still valid, so no body is sent. Saves bandwidth.

307

Temporary Redirect

Like 302, but the request method must not change when following the redirect.

308

Permanent Redirect

Like 301, but the request method must not change when following the redirect.

4xx · Client Error

The request contains bad syntax or cannot be fulfilled.

400

Bad Request

The server cannot process the request due to a client error, such as malformed syntax or invalid data.

401

Unauthorized

Authentication is required and has failed or not been provided. Despite the name, it means "unauthenticated".

403

Forbidden

The client is authenticated but does not have permission to access the resource.

404

Not Found

The server cannot find the requested resource. The most recognizable status code on the web.

405

Method Not Allowed

The HTTP method used is not supported for this resource.

408

Request Timeout

The server timed out waiting for the request.

409

Conflict

The request conflicts with the current state of the resource, such as an edit conflict.

410

Gone

The resource is permanently gone with no forwarding address.

418

I'm a teapot

An April Fools’ joke from 1998 — the server refuses to brew coffee because it is a teapot.

422

Unprocessable Content

The request was well-formed but contains semantic errors, common in API validation.

429

Too Many Requests

The client has sent too many requests in a given time — rate limiting.

5xx · Server Error

The server failed to fulfill a valid request.

500

Internal Server Error

A generic error meaning the server encountered an unexpected condition. The catch-all server error.

501

Not Implemented

The server does not support the functionality required to fulfill the request.

502

Bad Gateway

A server acting as a gateway received an invalid response from the upstream server.

503

Service Unavailable

The server is not ready — often due to maintenance or overload. Usually temporary.

504

Gateway Timeout

A gateway server did not get a timely response from the upstream server.

507

Insufficient Storage

The server cannot store the representation needed to complete the request.

Advertisement

Guide

About the HTTP Status Code Reference

Every HTTP response carries a three-digit status code that tells the client what happened. The first digit sets the category — 2xx means success, 3xx a redirect, 4xx a client mistake, and 5xx a server failure. Knowing them makes debugging APIs and websites far faster: the code usually points straight at whether the problem is your request or the server.

This reference lists the codes you'll actually encounter, with plain-language explanations. Search by number or name, or filter by category.

The five classes at a glance

  • 1xx Informational — the request was received and processing continues.
  • 2xx Success — the request was received, understood, and accepted.
  • 3xx Redirection — further action is needed, usually following a new URL.
  • 4xx Client Error — the request was wrong (bad data, missing auth, not found).
  • 5xx Server Error — the request was valid but the server failed to handle it.

Codes people mix up

401 vs 403: 401 means you're not authenticated (log in), while 403 means you're authenticated but not allowed. 301 vs 302: 301 is a permanent move (search engines update their links), 302 is temporary (keep using the original URL). 502 vs 504: 502 means a proxy got a bad response upstream, 504 means the upstream didn't respond in time.

How to use it

  1. 1Search for a code or name, like "404" or "forbidden".
  2. 2Or filter by class (2xx, 4xx, 5xx) to browse a category.
  3. 3Read the plain-language description to understand the cause.
  4. 4Use it to decide whether the fix is on the client or the server.

Frequently asked questions

What is the difference between 401 and 403?

401 Unauthorized means you are not authenticated — you need to log in or provide valid credentials. 403 Forbidden means you are authenticated but lack permission for that resource.

When should I use 301 vs 302?

Use 301 Moved Permanently when a URL has changed for good, so search engines update their index. Use 302 Found (or 307) for a temporary redirect where the original URL should still be used later.

What does a 500 error mean?

500 Internal Server Error is a generic message that the server hit an unexpected condition. The real cause is in the server logs, not the status code itself.

What status code should a successful API POST return?

Commonly 201 Created when a new resource is made, or 200 OK if it returns a result, or 204 No Content if there is nothing to return.

What is 429 Too Many Requests?

It means you have hit a rate limit. Slow down and check for a Retry-After header indicating when you can try again.

Related tools