HTTP Status Codes & MIME Types
Searchable reference for every common HTTP status code (what it really means) plus file-extension → MIME type lookup. Instant filter, works offline.
HTTP Status Codes & MIME Types
- 100
Continue
Request headers accepted — client may send the body.
- 101
Switching Protocols
Server agrees to switch protocol (e.g. HTTP → WebSocket upgrade).
- 102
Processing
WebDAV: request received, still working — prevents client timeout.
- 103
Early Hints
Preload hints sent before the final response, so browsers fetch assets sooner.
- 200
OK
Standard success — the response body carries the result.
- 201
Created
Resource created; Location header usually points to it.
- 202
Accepted
Request queued for async processing — no promise it will finish.
- 204
No Content
Success with an intentionally empty body (common for DELETE/PUT).
- 206
Partial Content
Byte-range response — used by video streaming and resumable downloads.
- 301
Moved Permanently
Permanent redirect; browsers and search engines update their references.
- 302
Found
Temporary redirect; method may change to GET on follow.
- 304
Not Modified
Cached copy is still valid — sent for conditional requests (ETag / If-Modified-Since).
- 307
Temporary Redirect
Like 302 but the method and body must not change.
- 308
Permanent Redirect
Like 301 but the method and body must not change.
- 400
Bad Request
Malformed request — syntax, framing, or invalid parameters.
- 401
Unauthorized
Authentication missing or invalid — really means "unauthenticated".
- 403
Forbidden
Authenticated but not allowed — credentials won’t help.
- 404
Not Found
No resource at this URL (or the server hides its existence).
- 405
Method Not Allowed
URL exists but not for this HTTP method — check the Allow header.
- 406
Not Acceptable
Server cannot produce a representation matching the Accept headers.
- 408
Request Timeout
Client took too long to send the full request.
- 409
Conflict
Request clashes with current resource state (e.g. concurrent edit).
- 410
Gone
Deliberately removed, permanently — stronger signal than 404.
- 411
Length Required
Server insists on a Content-Length header.
- 412
Precondition Failed
An If-* conditional header did not match (optimistic locking).
- 413
Content Too Large
Request body exceeds the server’s size limit.
- 415
Unsupported Media Type
Body format not supported (wrong Content-Type).
- 418
I'm a teapot
April-fools RFC 2324; some APIs use it for playful blocks.
- 422
Unprocessable Content
Syntax is fine but the data fails validation rules.
- 425
Too Early
Server refuses to risk a replayed request (TLS early data).
- 429
Too Many Requests
Rate limit hit — Retry-After tells you when to try again.
- 431
Request Header Fields Too Large
Headers (often cookies) exceed the server limit.
- 451
Unavailable For Legal Reasons
Blocked for legal/censorship reasons.
- 500
Internal Server Error
Unhandled server-side failure — the catch-all 5xx.
- 501
Not Implemented
Server does not support this method at all.
- 502
Bad Gateway
Proxy/load balancer got an invalid response from the upstream server.
- 503
Service Unavailable
Temporarily overloaded or down for maintenance — retry later.
- 504
Gateway Timeout
Proxy gave up waiting for the upstream server.
- 505
HTTP Version Not Supported
Requested HTTP version is not supported.
- 507
Insufficient Storage
WebDAV: server cannot store what the request requires.
- 508
Loop Detected
WebDAV: infinite loop while processing the request.
Runs entirely in your browser. Your input never leaves your device.
What next?
FAQ
What is this page?
A searchable reference of HTTP status codes and common MIME types. Search by number, by name, or filter by class — 1xx informational, 2xx success, 3xx redirection, 4xx client error, 5xx server error.
How do I read the first digit?
It tells you who to talk to. A 4xx says the request was wrong — fix the caller. A 5xx says the server failed while handling a valid request — fix the server. Getting that boundary right is most of the value in the scheme, and it is why returning 200 with an error body makes systems hard to operate: every monitor and cache downstream now believes the call succeeded.
What is the difference between 301 and 302?
301 is permanent and 302 is temporary. Browsers and search engines cache a 301 aggressively — often indefinitely — so a 301 issued by mistake is genuinely hard to undo, because clients stop asking the old URL. Use 302 (or 307) while you are unsure.
What about 307 and 308?
They are the strict versions of 302 and 301. The older codes permitted clients to change a POST into a GET when following the redirect; 307 and 308 forbid that, preserving the method and body. If you are redirecting anything other than a GET, prefer them.
When should I use 401 versus 403?
401 means "not authenticated" — you have not proved who you are, and a WWW-Authenticate header should accompany it. 403 means "authenticated, but not allowed". A common leak is returning 403 where 404 would be better: telling an unauthorised user that a resource exists is itself information.
What is 304 Not Modified for?
Conditional requests. The client sends a validator such as If-None-Match, and if nothing changed the server replies 304 with no body — saving the transfer while confirming the cached copy is still good.
Is 418 real?
It is a genuine registered code from an April Fools' RFC — "I'm a teapot" — and it periodically gets proposed for removal. Do not use it in production; it appears in the list for completeness.
Why do I need MIME types alongside status codes?
Because both are part of getting a response right. A correct status with text/plain on JSON leaves clients guessing, and browsers may sniff the content and behave in ways you did not intend.
Is anything sent to a server?
No. The list is bundled with the page and searched locally.
More encoding tools
- Integer Base Converter — Convert whole numbers between binary, octal, decimal, hex and any base from 2 to 36.
- Base64 Encode & Decode — Free online Base64 encoder and decoder.
- URL Encoder & Decoder — Encode and decode URL components per RFC 3986.
- JWT Decoder — Inspect JSON Web Tokens in your browser.
- HTML Entity Encoder / Decoder — Encode/decode HTML entities (&, <, >, named, numeric, hex).
- Hex Encode / Decode — Convert text to and from hexadecimal bytes.