← Back to Developer Tools
📡

HTTP Status Reference — All Codes, Snippets & Live Checker

All 34 status codes · Search · Filter · Snippets · cURL Tester · Favorites

💡

Complete HTTP status code reference with all 40+ codes — from 100 Continue to 511 Network Authentication Required. Click any code to see its full description, when to use it, when NOT to use it, RFC reference, and ready-to-copy code snippets in JavaScript fetch, Axios, Express.js, Python Flask, and nginx. Live URL status checker tests any public endpoint directly in your browser. Search by code number, name, or keyword. Filter by category (1xx–5xx) or tag (REST, Auth, Cache, Redirect). Star frequently used codes to keep them pinned at top.

1xx4
2xx5
3xx5
4xx13
5xx7
🌐 Live Status Checker
CORS-safe — works for public APIs and your own endpoints
100
Continue
Server received request headers, client should proceed
Upload
101
Switching Protocols
Server is switching to the protocol specified in Upgrade header
WebSocket
102
Processing
Server has received and is processing the request (WebDAV)
REST
103
Early Hints
Server sends preliminary hints for browser to preload resources
Cache
200
OK
Request succeeded — standard success response
RESTSuccess📦 Cacheable
201
Created
Request succeeded and a new resource was created
RESTSuccess
202
Accepted
Request accepted but processing not yet complete
REST
204
No Content
Request succeeded but no response body
RESTSuccess
206
Partial Content
Server is delivering only part of the resource (range request)
UploadCache📦 Cacheable
301
Moved Permanently
Resource permanently moved to new URL — use Location header
RedirectCache📦 Cacheable
302
Found
Resource temporarily at different URL — method may change
Redirect
304
Not Modified
Resource not changed since last request — use cached version
Cache📦 Cacheable
307
Temporary Redirect
Temporary redirect — HTTP method preserved
Redirect
308
Permanent Redirect
Permanent redirect — HTTP method preserved
RedirectCache📦 Cacheable
400
Bad Request
Server cannot process request due to client error
RESTError
401
Unauthorized
Client must authenticate to get the requested response
AuthError↺ Retryable
403
Forbidden
Client is authenticated but not authorized for this resource
AuthError
404
Not Found
Server cannot find the requested resource
RESTError📦 Cacheable
405
Method Not Allowed
HTTP method not allowed for this resource
RESTError
408
Request Timeout
Server timed out waiting for the request
Error↺ Retryable
409
Conflict
Request conflicts with current state of the server
RESTError↺ Retryable
410
Gone
Resource permanently deleted — unlike 404, this is intentional
RESTErrorCache📦 Cacheable
411
Length Required
Server requires Content-Length header
UploadError
413
Content Too Large
Request body exceeds server size limit
UploadError
415
Unsupported Media Type
Server rejects request due to unsupported Content-Type
RESTError
422
Unprocessable Content
Request is well-formed but has semantic errors (validation failed)
RESTError
429
Too Many Requests
Client has sent too many requests (rate limited)
AuthErrorREST↺ Retryable
500
Internal Server Error
Server encountered unexpected error
Error↺ Retryable
501
Not Implemented
Server does not support the functionality required
Error📦 Cacheable
502
Bad Gateway
Upstream server returned invalid response
Error↺ Retryable
503
Service Unavailable
Server temporarily unavailable — overloaded or down for maintenance
Error↺ Retryable
504
Gateway Timeout
Upstream server did not respond in time
Error↺ Retryable
507
Insufficient Storage
Server unable to store the representation (WebDAV)
UploadError↺ Retryable
511
Network Authentication Required
Client needs to authenticate to gain network access (captive portal)
AuthError↺ Retryable
📡

Click any status code to see full details, code snippets, and usage guide

NavigateEsc CloseCtrl+F Search
Ctrl+F Focus search Navigate codesEsc Close detailCtrl+L Clear filters

Frequently Asked Questions

What is the difference between 401 and 403 HTTP status codes?

401 Unauthorized means the client is not authenticated — they need to log in or provide a valid API key. Despite the name, it means "unauthenticated." 403 Forbidden means the client IS authenticated but lacks permission for this resource. A logged-in regular user trying to access an admin endpoint gets 403. A request with no token or expired token gets 401.

When should I use 400 Bad Request versus 422 Unprocessable Content?

Use 400 for syntactically malformed requests — invalid JSON that cannot be parsed, missing Content-Type header, or malformed URL. Use 422 for semantically invalid data — valid JSON that fails business validation, such as an email field with invalid format, a date that is in the past, or a value that violates a business rule. Most modern REST APIs use 422 for form validation failures.

What is the difference between 301 and 307 redirects?

301 Moved Permanently allows the browser to change POST to GET when following the redirect (legacy behavior). 307 Temporary Redirect strictly preserves the HTTP method — a POST to a 307 URL will POST to the new location. For permanent redirects that preserve method, use 308 Permanent Redirect. For permanent GET redirects (like old URLs to new URLs), use 301.

Should I return 404 or 403 when a user tries to access another user's resource?

For security-sensitive resources, return 404 instead of 403. A 403 reveals that the resource exists but the user lacks access — an attacker now knows something exists at that URL. Returning 404 hides whether the resource exists at all. This "security by obscurity" pattern is widely used for private user data, admin endpoints, and sensitive API routes.

What HTTP status code should I use for rate limiting?

Use 429 Too Many Requests. Always include a Retry-After header (integer seconds or HTTP date) so clients know when to retry. Add X-RateLimit-Limit (max requests), X-RateLimit-Remaining (remaining in window), and X-RateLimit-Reset (Unix timestamp of reset) headers for programmatic rate limit awareness.

What is the difference between 502 Bad Gateway and 503 Service Unavailable?

502 Bad Gateway means the server is acting as a proxy/gateway and received an invalid or no response from the upstream server — typically your nginx received an error from the Node.js backend. 503 Service Unavailable means the server itself cannot handle requests right now — due to maintenance, overload, or a circuit breaker being open. Include Retry-After on 503 to tell clients when to retry.

You might also like

Related Tools