99tools

Dev Reference

runs in your browser

Searchable tables of HTTP status codes with their RFCs, every registered MIME type and its extensions, keyboard codes with a live key tester, and common ports.

Table

IANA’s registry as of RFC 9110. A number matches as a prefix; "4xx" matches a class.

HTTP status

72 entries
CodeNameMeaningDefined in
100ContinueSend the rest of the request; the headers were acceptable.RFC 9110 §15.2.11xx Informational
101Switching ProtocolsThe server agrees to change protocol, as asked in Upgrade.RFC 9110 §15.2.21xx Informational
102ProcessingWebDAV: the request is being worked on; no response yet.RFC 2518 §10.11xx Informational
103Early HintsPreliminary headers, usually Link, so the client can preload.RFC 82971xx Informational
200OKThe request succeeded; the body depends on the method.RFC 9110 §15.3.12xx Success
201CreatedA resource was created; Location usually points at it.RFC 9110 §15.3.22xx Success
202AcceptedAccepted for processing, which has not finished and may not succeed.RFC 9110 §15.3.32xx Success
203Non-Authoritative InformationSuccess, but a proxy transformed the origin’s response.RFC 9110 §15.3.42xx Success
204No ContentSuccess with no body; the client need not change its view.RFC 9110 §15.3.52xx Success
205Reset ContentSuccess; the client should reset the form that sent it.RFC 9110 §15.3.62xx Success
206Partial ContentPart of the resource, in answer to a Range request.RFC 9110 §15.3.72xx Success
207Multi-StatusWebDAV: an XML body carries a status for each of several resources.RFC 4918 §11.12xx Success
208Already ReportedWebDAV: members of this binding were listed earlier in the response.RFC 5842 §7.12xx Success
226IM UsedThe response is the result of applying instance manipulations (delta encoding).RFC 3229 §10.4.12xx Success
300Multiple ChoicesSeveral representations exist; pick one from the list.RFC 9110 §15.4.13xx Redirection
301Moved PermanentlyUse the Location URL from now on; a POST may become GET.RFC 9110 §15.4.23xx Redirection
302FoundTemporarily at Location; a POST may become GET.RFC 9110 §15.4.33xx Redirection
303See OtherFetch Location with GET, typically after a form POST.RFC 9110 §15.4.43xx Redirection
304Not ModifiedThe cached copy is still good; no body follows.RFC 9110 §15.4.53xx Redirection
305Use ProxyDeprecated: use the proxy in Location.RFC 9110 §15.4.63xx Redirection
307Temporary RedirectTemporarily at Location; repeat with the same method and body.RFC 9110 §15.4.83xx Redirection
308Permanent RedirectPermanently at Location; repeat with the same method and body.RFC 9110 §15.4.93xx Redirection
400Bad RequestThe request is malformed or otherwise cannot be understood.RFC 9110 §15.5.14xx Client error
401UnauthorizedAuthentication is required or failed; WWW-Authenticate says how.RFC 9110 §15.5.24xx Client error
402Payment RequiredReserved for future use; some APIs use it for billing.RFC 9110 §15.5.34xx Client error
403ForbiddenUnderstood, but refused; authenticating will not help.RFC 9110 §15.5.44xx Client error
404Not FoundNothing at this URL, or the server will not say whether there is.RFC 9110 §15.5.54xx Client error
405Method Not AllowedThe resource exists but not for this method; Allow lists those that work.RFC 9110 §15.5.64xx Client error
406Not AcceptableNo representation matches the Accept headers.RFC 9110 §15.5.74xx Client error
407Proxy Authentication RequiredLike 401, but from a proxy.RFC 9110 §15.5.84xx Client error
408Request TimeoutThe server gave up waiting for the rest of the request.RFC 9110 §15.5.94xx Client error
409ConflictThe request clashes with the resource’s current state, such as an edit collision.RFC 9110 §15.5.104xx Client error
410GoneIt existed and was removed on purpose; stop asking.RFC 9110 §15.5.114xx Client error
411Length RequiredSend a Content-Length header.RFC 9110 §15.5.124xx Client error
412Precondition FailedAn If-Match or similar condition was not met.RFC 9110 §15.5.134xx Client error
413Content Too LargeThe body is bigger than the server will take (formerly Payload Too Large).RFC 9110 §15.5.144xx Client error
414URI Too LongThe URL is longer than the server will parse.RFC 9110 §15.5.154xx Client error
415Unsupported Media TypeThe body’s Content-Type is not one the server accepts.RFC 9110 §15.5.164xx Client error
416Range Not SatisfiableThe Range asked for lies outside the resource.RFC 9110 §15.5.174xx Client error
417Expectation FailedThe Expect header cannot be met.RFC 9110 §15.5.184xx Client error
418I’m a teapot(unofficial)An April Fools’ joke that stuck; not assigned by IANA.RFC 2324 §2.3.24xx Client error
421Misdirected RequestSent to a server that cannot answer for this authority.RFC 9110 §15.5.204xx Client error
422Unprocessable ContentWell-formed but semantically wrong, such as a failed validation.RFC 9110 §15.5.214xx Client error
423LockedWebDAV: the resource is locked.RFC 4918 §11.34xx Client error
424Failed DependencyWebDAV: an earlier request this one depended on failed.RFC 4918 §11.44xx Client error
425Too EarlyThe server will not risk replaying an early-data request.RFC 8470 §5.24xx Client error
426Upgrade RequiredSwitch to the protocol named in Upgrade, such as TLS.RFC 9110 §15.5.224xx Client error
428Precondition RequiredThe server needs a conditional request to avoid lost updates.RFC 6585 §34xx Client error
429Too Many RequestsRate limited; Retry-After may say when to try again.RFC 6585 §44xx Client error
431Request Header Fields Too LargeOne header, or all of them together, is too big.RFC 6585 §54xx Client error
444No Response(unofficial)nginx closed the connection without replying; seen only in logs.nginx4xx Client error
451Unavailable For Legal ReasonsBlocked by a legal demand; the body may say whose.RFC 7725 §34xx Client error
499Client Closed Request(unofficial)nginx: the client went away before the response was sent.nginx4xx Client error
500Internal Server ErrorThe server hit an unexpected condition.RFC 9110 §15.6.15xx Server error
501Not ImplementedThe server does not support this method at all.RFC 9110 §15.6.25xx Server error
502Bad GatewayA proxy got an invalid response from the server behind it.RFC 9110 §15.6.35xx Server error
503Service UnavailableOverloaded or down for maintenance; Retry-After may help.RFC 9110 §15.6.45xx Server error
504Gateway TimeoutA proxy timed out waiting for the server behind it.RFC 9110 §15.6.55xx Server error
505HTTP Version Not SupportedThe server refuses this major HTTP version.RFC 9110 §15.6.65xx Server error
506Variant Also NegotiatesA content-negotiation misconfiguration on the server.RFC 2295 §8.15xx Server error
507Insufficient StorageWebDAV: the server is out of room to store the representation.RFC 4918 §11.55xx Server error
508Loop DetectedWebDAV: an infinite loop while processing Depth: infinity.RFC 5842 §7.25xx Server error
510Not ExtendedThe request needs further extensions the server requires.RFC 2774 §75xx Server error
511Network Authentication RequiredA captive portal wants you to log in to the network first.RFC 6585 §65xx Server error
520Web Server Returned an Unknown Error(unofficial)Cloudflare: the origin returned something Cloudflare could not interpret.Cloudflare5xx Server error
521Web Server Is Down(unofficial)Cloudflare: the origin refused the connection.Cloudflare5xx Server error
522Connection Timed Out(unofficial)Cloudflare: the TCP handshake with the origin timed out.Cloudflare5xx Server error
523Origin Is Unreachable(unofficial)Cloudflare: the origin could not be reached, often DNS.Cloudflare5xx Server error
524A Timeout Occurred(unofficial)Cloudflare: connected, but the origin took too long to respond.Cloudflare5xx Server error
525SSL Handshake Failed(unofficial)Cloudflare: the TLS handshake with the origin failed.Cloudflare5xx Server error
526Invalid SSL Certificate(unofficial)Cloudflare: the origin’s certificate could not be validated.Cloudflare5xx Server error
527Railgun Error(unofficial)Cloudflare: a Railgun connection error (retired product).Cloudflare5xx Server error

about this tool

Four tables, one search box

Pick a table and type. A number matches as a prefix, so 40 narrows the status codes to the 400s and 44 the ports to 443 and 445; 4xx matches a whole class; words match anywhere in the name and description, and every word has to match, so not found gives 404 alone. Each row has a copy button for the value you would paste.

HTTP status codes

The list is IANA's registry as consolidated by RFC 9110, with the section reference for each code so you can read the definition rather than a paraphrase. RFC 9110 renamed two codes in 2022 — 413 is Content Too Large, 422 is Unprocessable Content — and the table uses those names. A handful of codes you will meet in logs but that IANA has never assigned are included and marked unofficial: 418 (an April Fools' RFC), nginx's 444 and 499, and Cloudflare's 520 to 527. Each names the software that emits it instead of an RFC.

MIME types

The MIME table is the whole mime-db registry, about 2,500 types, of which roughly a thousand have file extensions. It is fetched the first time the tab is opened, not with the page. Searching by extension puts the exact match first; searching by word matches the type name. The list is capped at two hundred rows, and the heading says how many matched in total, because a matches most of the registry. With no query, only types that have extensions are listed, since those are the ones people look up.

Some mappings surprise people, which is the point of having the table: .ts is video/mp2t (MPEG transport stream), not TypeScript; .js is text/javascript by IANA and application/javascript by older Apache configurations, and both are listed with their source.

Keycodes

Click the box and press a key to see what a keydown event carries: key (what the key produces on your layout), code (which physical key it is), the legacy keyCode and which, the location (left, right or numpad), active modifiers, and whether the event is a repeat. Inside the box, Tab and Space are captured rather than acted on. Keys pressed while typing in the search field are not captured.

The table below lists the codes with their keyCode values as most browsers report them. keyCode is deprecated and layout-dependent, and Firefox disagrees on some punctuation; the notes say where. key values in the table are for a US layout, unshifted.

Ports

Not the full IANA registry, which runs to thousands of mostly-historical entries, but the ports a developer meets: the classic services, databases, message queues, and the default ports of common development servers, which are conventions rather than registrations. The range column gives IANA's classification: 0–1023 well-known, 1024–49151 registered, 49152–65535 dynamic.

questions

Where do the status codes come from?
The IANA HTTP Status Code Registry, which RFC 9110 (2022) consolidates. A few codes you will meet in practice but that IANA has not assigned — 418, nginx’s 444 and 499, Cloudflare’s 520 to 527 — are included and marked unofficial, with the software that emits them named instead of an RFC.
Why is 413 called Content Too Large and 422 Unprocessable Content?
RFC 9110 renamed them from Payload Too Large and Unprocessable Entity. Both names refer to the same codes and older servers still send the old phrases; the table uses the current ones.
What is the difference between key, code and keyCode?
code names the physical key regardless of layout (KeyA is the same key on AZERTY). key is the character or action it produces on the current layout, so it changes with Shift and language. keyCode is a legacy number, deprecated, that differs between browsers for some punctuation; the table notes the Firefox values where they differ.
Why does .ts map to video/mp2t?
Because the registered type for the .ts extension is MPEG transport stream, which predates TypeScript. Servers that map by extension will label a TypeScript file as video unless told otherwise; that is exactly the kind of surprise this table exists to show.
Are the ports the complete IANA list?
No. The IANA registry has thousands of entries, most of them long dead. This table is the ports a developer actually meets: the classic services, the databases and queues, and the default ports of common development servers, which are conventions rather than registrations.