HTTP Status Codes Reference

Complete reference table for HTTP response status codes.

Back to all tools on ToolForge

More in Web & Network

1xx Informational

CodeStatusDescription
100ContinueInitial part of request received, client should continue sending
101Switching ProtocolsServer agrees to switch protocols (e.g., WebSocket upgrade)
102ProcessingRequest is being processed, no response available yet (WebDAV)
103Early HintsReturn headers before final response (preload hints)

2xx Success

CodeStatusDescription
200OKRequest succeeded, response contains requested resource
201CreatedResource successfully created, Location header points to it
202AcceptedRequest accepted for processing but not completed
203Non-Authoritative InformationTransformed response from proxy or intermediary
204No ContentSuccess but no response body (common for DELETE)
205Reset ContentClient should reset document view (form reset)
206Partial ContentServer delivering partial resource (range request)
207Multi-StatusMultiple status codes in single response (WebDAV)
208Already ReportedMembers of DAV binding already listed (WebDAV)
226IM UsedResponse is result of delta applied (RFC 3229)

3xx Redirection

CodeStatusDescription
300Multiple ChoicesMultiple options available for requested resource
301Moved PermanentlyResource has new permanent URL, update bookmarks
302FoundTemporary redirect, continue using original URL
303See OtherRedirect to different URI using GET method
304Not ModifiedUse cached version, resource unchanged
305Use ProxyAccess through proxy (deprecated for security)
307Temporary RedirectTemp redirect, original method preserved
308Permanent RedirectPerm redirect, original method preserved

4xx Client Error

CodeStatusDescription
400Bad RequestInvalid syntax, malformed request
401UnauthorizedAuthentication required or failed
402Payment RequiredReserved for future use (payment systems)
403ForbiddenServer understands request but refuses access
404Not FoundResource not found at specified URL
405Method Not AllowedHTTP method not supported for this resource
406Not AcceptableCannot produce acceptable response format
407Proxy Authentication RequiredProxy requires authentication
408Request TimeoutServer timed out waiting for request
409ConflictRequest conflicts with current resource state
410GoneResource permanently removed, won't return
411Length RequiredContent-Length header required
412Precondition FailedConditional headers failed (ETag, If-Match)
413Payload Too LargeRequest entity exceeds server limits
414URI Too LongRequest URL exceeds server limits
415Unsupported Media TypeRequest format not supported
416Range Not SatisfiableRequested range is invalid for resource
417Expectation FailedExpect header requirement not met
418I'm a TeapotApril Fools' joke (RFC 2324)
421Misdirected RequestRequest sent to wrong server/host
422Unprocessable EntityWell-formed but contains errors (WebDAV)
423LockedResource is locked (WebDAV)
424Failed DependencyPrevious request failed, this one can't proceed
425Too EarlyServer unwilling to process due to replay risk
426Upgrade RequiredClient should upgrade protocol
428Precondition RequiredRequest should be conditional
429Too Many RequestsRate limit exceeded, slow down
431Request Header Fields Too LargeHeaders exceed server limits
451Unavailable for Legal ReasonsResource blocked for legal reasons

5xx Server Error

CodeStatusDescription
500Internal Server ErrorGeneric server error, no specific code applies
501Not ImplementedServer doesn't support requested functionality
502Bad GatewayUpstream server returned invalid response
503Service UnavailableServer temporarily unable (overload/maintenance)
504Gateway TimeoutUpstream server didn't respond in time
505HTTP Version Not SupportedRequested HTTP version not supported
506Variant Also NegotiatesTransparent content negotiation issue
507Insufficient StorageNot enough storage to complete (WebDAV)
508Loop DetectedInfinite loop detected (WebDAV)
510Not ExtendedFurther extensions required (RFC 2774)
511Network Authentication RequiredNetwork access requires authentication

About HTTP Status Codes Reference

This HTTP status codes reference lists standard response codes from 1xx to 5xx with descriptions. Use the search box to quickly find specific codes or browse by category.

It is useful for API development, debugging server responses, understanding HTTP communication, and implementing proper error handling in applications.

HTTP Status Code Best Practices

Success Responses:
  200 OK - Standard success for GET/PUT/PATCH
  201 Created - POST created new resource
  204 No Content - Success with no body (DELETE)

Client Errors:
  400 Bad Request - Invalid input, check validation
  401 Unauthorized - Missing/invalid authentication
  403 Forbidden - Authenticated but no permission
  404 Not Found - Resource doesn't exist
  429 Too Many Requests - Rate limited, check Retry-After

Server Errors:
  500 Internal Server Error - Check application logs
  502 Bad Gateway - Check upstream/proxy health
  503 Service Unavailable - Retry later, check status page
  504 Gateway Timeout - Increase timeout or fix backend

Redirects:
  301 Moved Permanently - Update bookmarks/links
  302 Found - Temporary, keep original URL
  304 Not Modified - Use cached response

Frequently Asked Questions

How are HTTP status codes organized?
HTTP status codes are organized into 5 classes by first digit: 1xx (Informational - request received), 2xx (Success - processed successfully), 3xx (Redirection - further action needed), 4xx (Client Error - invalid request), 5xx (Server Error - server failed valid request). Each class has specific codes for different scenarios.
What is the difference between PUT and PATCH responses?
PUT (full replacement) typically returns 200 OK with updated resource or 204 No Content. PATCH (partial update) returns similar codes. Both return 201 Created if creating new resource, 400 Bad Request for invalid data, 404 Not Found if resource doesn't exist, 409 Conflict for version mismatches.
When should I use 201 vs 200?
Use 201 Created when a POST request successfully creates a new resource. Include Location header with the new resource URL. Use 200 OK for successful updates, retrievals, or operations that don't create new resources. 201 specifically indicates resource creation.
What are the most common API status codes?
REST APIs commonly use: 200 OK (success), 201 Created (resource created), 204 No Content (success, empty response), 400 Bad Request (invalid input), 401 Unauthorized (missing auth), 403 Forbidden (insufficient permissions), 404 Not Found, 429 Too Many Requests (rate limited), 500 Internal Server Error.
What is the purpose of 304 Not Modified?
304 Not Modified enables efficient caching. When client sends If-None-Match (ETag) or If-Modified-Since headers, server returns 304 if resource unchanged (no body, saves bandwidth) or 200 with new content if modified. Critical for performance optimization.
How do I handle 429 Too Many Requests?
When receiving 429: 1) Stop sending requests immediately, 2) Check Retry-After header for wait time, 3) Implement exponential backoff, 4) Reduce request rate, 5) Consider caching responses. Prevention: implement client-side rate limiting, batch requests, use webhooks instead of polling.