HTTP Status Codes — Free Online Tool

Complete HTTP status code reference: 1xx, 2xx, 3xx, 4xx, 5xx. Search by code or description. Includes meanings, use cases, troubleshooting tips.

Use this free online HTTP Status Codes directly in your browser. No signup required, no data leaves your device. Part of Utilier — a collection of 133+ developer utilities.

What is HTTP Status Code Reference & Lookup?

HTTP status codes are three-digit numbers returned by web servers in response to client requests. They indicate whether the request succeeded, failed, requires redirect, or needs authentication. This tool provides a searchable reference of all HTTP status codes (1xx Informational, 2xx Success, 3xx Redirect, 4xx Client Error, 5xx Server Error) with descriptions, common causes, and troubleshooting tips. Search by code (404, 500) or keyword (not found, timeout) to understand error messages and fix web issues.

  • Status code categories: 1xx Informational (100 Continue, 102 Processing), 2xx Success (200 OK, 201 Created, 204 No Content), 3xx Redirect (301 Permanent, 302 Temporary, 304 Not Modified), 4xx Client Error (400 Bad Request, 401 Unauthorized, 403 Forbidden, 404 Not Found), 5xx Server Error (500 Internal Error, 502 Bad Gateway, 503 Service Unavailable).
  • Detailed descriptions: Each code includes: official meaning, when servers return it, common causes, how to fix (client-side and server-side), examples from real scenarios.
  • Search and filter: Search by code (404, 500), keyword (forbidden, timeout), or category (4xx, 5xx). Quick lookup for debugging web issues or API errors.
  • Browser behavior: Explains how browsers handle each code: display error page (404, 500), follow redirect (301, 302), use cached version (304), prompt for auth (401).
  • REST API context: Shows proper usage in REST APIs: 200 for successful GET, 201 for POST (resource created), 204 for DELETE (no content), 400 for validation errors, 401 for missing auth, 404 for resource not found.

Why use HTTP status codes?

Debugging HTTP errors requires knowing what each status code means and how to fix it. This tool provides instant lookup and troubleshooting guidance.

  • Understand error messages: When you see '404 Not Found' or '500 Internal Server Error', know what it means and whether it's client-side or server-side. No need to Google each code.
  • Debug web issues faster: Search by code or keyword to find causes and solutions. Example: 502 Bad Gateway = proxy/gateway issue, check upstream server.
  • Learn HTTP protocol: See how status codes fit into HTTP request/response cycle. Great for learning web development, APIs, or server administration.
  • REST API design: Choose correct status code for API responses. 201 for resource creation, 204 for successful deletion, 400 for validation errors, 409 for conflicts.
  • Troubleshooting guide: Each code includes common causes and fixes. Example: 403 Forbidden = check file permissions, .htaccess rules, or IP restrictions.
  • Quick reference: Bookmark for instant lookup during development, debugging, or API testing. No need to memorize 60+ status codes.

When to use HTTP status codes

Use whenever you encounter HTTP errors or need to design API responses.

  • Debugging '404 Not Found', '500 Internal Server Error', or other HTTP errors on websites.
  • Understanding API error responses (400 Bad Request, 401 Unauthorized, 404 Not Found).
  • Designing REST API responses (choosing correct status code for each endpoint).
  • Troubleshooting redirect issues (301 vs 302, redirect loops, 304 caching).
  • Learning HTTP protocol and client-server communication.
  • Configuring web servers (Apache, Nginx) to return correct status codes.
  • Testing APIs with tools like Postman or curl (verifying status codes).

How to use HTTP status codes

Search by code or keyword; view description and troubleshooting tips.

  1. Search by code or keyword: Enter HTTP status code (404, 500) or keyword (not found, forbidden, timeout). Tool filters matching codes.
  2. View category: Browse by category: 1xx (Informational), 2xx (Success), 3xx (Redirect), 4xx (Client Error), 5xx (Server Error). Click category to see all codes.
  3. Read description: See official meaning, when servers return this code, and typical browser behavior. Understand what the code indicates.
  4. Check common causes: Review list of common causes for the error. Example: 404 = wrong URL, deleted file, broken link, typo in path.
  5. Follow troubleshooting steps: Get client-side and server-side fixes. Example: 500 error = check server logs, fix code bugs, check database connection.
  6. See examples: View real-world scenarios where this code appears. Example: 301 redirect from www to non-www, 401 for API authentication.
  7. Copy code or share link: Copy status code or share permalink to specific code page. Useful for documentation or team communication.

Key features

  • Complete reference: All HTTP status codes: 1xx, 2xx, 3xx, 4xx, 5xx. Includes common and rare codes (102 Processing, 418 I'm a teapot, 451 Unavailable for Legal Reasons).
  • Search and filter: Search by code (404), keyword (not found), or category (4xx). Instant filtering for quick lookup.
  • Detailed descriptions: Official meaning, when used, browser behavior, REST API context. Clear explanations for each code.
  • Troubleshooting guides: Common causes and fixes for errors. Client-side and server-side solutions.
  • Real-world examples: Scenarios where each code appears: 301 for SEO redirects, 401 for API auth, 429 for rate limiting.
  • Category grouping: Organized by 1xx, 2xx, 3xx, 4xx, 5xx. Easy to browse by error type.
  • Copy and share: Copy status code or share permalink. Useful for documentation or bug reports.

Common use cases

  • Debug 404 errors: 404 Not Found = requested resource doesn't exist. Causes: wrong URL, deleted file, broken link, typo. Fix: check URL spelling, restore file, update links.
  • Fix 500 errors: 500 Internal Server Error = server-side bug. Causes: code error, database issue, permissions. Fix: check server logs (error.log), fix bugs, check DB connection.
  • Understand 301 vs 302: 301 = permanent redirect (SEO passes link juice). 302 = temporary redirect (SEO does not pass). Use 301 for domain changes, 302 for A/B testing.
  • API authentication (401 vs 403): 401 Unauthorized = missing or invalid auth token. 403 Forbidden = valid auth but insufficient permissions. 401 = login required, 403 = access denied.
  • Rate limiting (429): 429 Too Many Requests = client exceeded rate limit. Causes: too many API calls. Fix: implement backoff, reduce request frequency, increase rate limit.
  • REST API design: 200 = successful GET, 201 = POST created resource, 204 = DELETE succeeded (no content), 400 = validation error, 404 = resource not found, 409 = conflict (duplicate).

Examples

Common HTTP status codes and their meanings.

200 OK (successful request)

GET /users/123
HTTP/1.1 200 OK
Content-Type: application/json
{"id": 123, "name": "John"}

Standard success response. Request succeeded, server returned requested data. Most common status code.

404 Not Found (resource doesn't exist)

GET /users/999 (user 999 doesn't exist)
HTTP/1.1 404 Not Found
Content-Type: application/json
{"error": "User not found"}

Requested resource doesn't exist. Causes: wrong URL, deleted resource, typo. Client-side error (4xx).

301 Moved Permanently (SEO redirect)

GET http://example.com (redirect to https://example.com)
HTTP/1.1 301 Moved Permanently
Location: https://example.com

Resource permanently moved. Browser follows Location header. SEO: link juice passes to new URL. Use for domain changes, HTTP → HTTPS.

401 Unauthorized (missing authentication)

GET /api/protected (no auth token)
HTTP/1.1 401 Unauthorized
WWW-Authenticate: Bearer
{"error": "Authentication required"}

Authentication required. Client must provide valid credentials (token, API key, username/password). WWW-Authenticate header specifies auth method.

500 Internal Server Error (server bug)

GET /users/123 (server crashes due to code bug)
HTTP/1.1 500 Internal Server Error
{"error": "Internal server error"}

Server-side error (5xx). Causes: code bug, database issue, misconfiguration. Fix: check server logs (error.log), fix bugs, restart server.

Technical reference

HTTP status code structure and categories:

Status code format
Three-digit number: first digit = category (1-5), remaining two = specific code. Example: 404 = 4 (client error) + 04 (not found).
1xx Informational
Request received, processing continues. Codes: 100 Continue, 101 Switching Protocols, 102 Processing. Rarely used (mostly in WebSockets, HTTP/2).
2xx Success
Request succeeded. Codes: 200 OK (standard success), 201 Created (POST created resource), 202 Accepted (async processing), 204 No Content (successful DELETE). Most common: 200.
3xx Redirect
Client must take additional action. Codes: 301 Moved Permanently (SEO redirect), 302 Found (temporary), 303 See Other (POST → GET redirect), 304 Not Modified (cached). Most common: 301, 302, 304.
4xx Client Error
Request error (client's fault). Codes: 400 Bad Request (invalid syntax), 401 Unauthorized (no auth), 403 Forbidden (no permission), 404 Not Found (resource missing), 429 Too Many Requests (rate limit). Most common: 400, 401, 403, 404.
5xx Server Error
Server failed to fulfill valid request. Codes: 500 Internal Server Error (generic bug), 502 Bad Gateway (proxy issue), 503 Service Unavailable (server overload/maintenance), 504 Gateway Timeout (proxy timeout). Most common: 500, 502, 503.
Custom codes
Servers can define custom 4xx or 5xx codes (e.g., 460, 520). Not standard but used by some services (Cloudflare uses 52x for custom errors).
Response headers
Status code appears in HTTP response first line: HTTP/1.1 200 OK. Followed by headers (Content-Type, Cache-Control) and body.
Browser behavior
200 = display page, 301/302 = redirect (follow Location header), 304 = use cached version, 401 = prompt for login, 404/500 = show error page.
REST API conventions
GET = 200 (success) or 404 (not found). POST = 201 (created) or 400 (validation error). PUT = 200 (updated) or 404 (not found). DELETE = 204 (deleted) or 404 (not found). PATCH = 200 (updated).

Common mistakes to avoid

Using 200 OK for errors instead of appropriate 4xx or 5xx codes

Why it happens: Returning 200 OK with error message in body (e.g., {"status": 200, "error": "User not found"}) breaks HTTP semantics. Clients (browsers, libraries) check status code to determine success/failure. 200 = success, so error handling fails. Common in poorly designed APIs.

How to avoid it: Use correct status codes: 400 for validation errors, 401 for auth errors, 404 for not found, 500 for server errors. Example: 404 with {"error": "User not found"}, not 200.

Confusing 401 (Unauthorized) and 403 (Forbidden)

Why it happens: 401 = authentication required (missing or invalid credentials). 403 = authenticated but no permission (access denied). Using 401 when user is logged in but lacks permission is incorrect. Common mistake: returning 401 for authorization failures.

How to avoid it: 401 = 'Who are you?' (login required). 403 = 'I know who you are, but you can't access this' (permission denied). Use 401 for missing auth, 403 for insufficient permissions.

Using 302 (temporary redirect) for permanent URL changes, hurting SEO

Why it happens: 302 = temporary redirect (search engines don't transfer PageRank/link juice to new URL). 301 = permanent redirect (SEO transfers to new URL). Using 302 for permanent changes (domain migration, HTTPS redirect) loses SEO value. Common when copy-pasting redirect rules.

How to avoid it: Use 301 for permanent changes (domain changes, HTTP → HTTPS, canonical URLs). Use 302 only for temporary redirects (A/B testing, maintenance page).

Not logging or exposing 5xx errors, making debugging impossible

Why it happens: Returning generic '500 Internal Server Error' without logging details (stack trace, error message) makes debugging impossible. Developers can't identify the root cause. Common in production when error logging is disabled.

How to avoid it: Log 5xx errors to server logs (error.log, application logs). Include stack trace, request details, timestamp. In development, expose error details. In production, log details but show generic message to users.

Creating redirect loops (A → B → A), causing ERR_TOO_MANY_REDIRECTS

Why it happens: Example: /page-a redirects to /page-b (301), /page-b redirects to /page-a (301). Browser follows redirects infinitely until max redirect limit (20-30), then shows ERR_TOO_MANY_REDIRECTS. Common when multiple .htaccess or nginx rules conflict.

How to avoid it: Check redirect chain: use curl -I URL to see Location headers. Ensure redirects point to final destination, not back to source. Example: A → B (final), not A → B → A.

Frequently asked questions

What is the difference between 401 and 403?

401 Unauthorized = authentication required (missing or invalid credentials, login needed). 403 Forbidden = authenticated but no permission (access denied, insufficient privileges). 401 = who are you? 403 = you can't access this.

What is the difference between 301 and 302 redirects?

301 Moved Permanently = permanent redirect (SEO: link juice transfers to new URL). 302 Found = temporary redirect (SEO: link juice stays with old URL). Use 301 for domain changes, 302 for A/B testing or temporary moves.

Why do I get 500 Internal Server Error?

500 = server-side error (code bug, database issue, permissions, misconfiguration). Not your fault. Check server logs (error.log) for details. Common causes: PHP/Python errors, database connection failures, missing files.

What does 304 Not Modified mean?

304 = resource hasn't changed since last request (based on If-Modified-Since or ETag headers). Browser uses cached version instead of downloading again. Saves bandwidth, improves performance. Normal behavior for cached resources.

What is 429 Too Many Requests?

429 = client exceeded rate limit (too many API calls in short time). Server protects against abuse/overload. Fix: slow down requests, implement backoff (wait and retry), increase rate limit if allowed.

Can I create custom HTTP status codes?

Technically yes (servers can return any 3-digit number), but stick to standard codes (RFC 7231). Custom codes (e.g., 460, 520) are not understood by browsers/libraries. Cloudflare uses 52x for custom errors but these are non-standard.

What is 418 I'm a teapot?

418 = April Fools' joke (RFC 2324, Hyper Text Coffee Pot Control Protocol). Not a real error. Some servers return it as Easter egg or to indicate 'request is silly'. Not used in production.

References

Privacy and availability

  • Runs entirely in your browser — zero server processing
  • No signup or account required
  • Works offline once loaded
  • Fast, lightweight, no external dependencies
  • Available as a browser extension for Chrome and Firefox