A browser decides how to handle a file by the Content-Type header: the wrong type makes it download the page instead of rendering it, or block a font it should load. A lookup table keeps the answer in reach without leaving the browser. The MIME Types Lookup ships a 125-row static table mapping extensions to MIME types and categories, with search, category filter and CSV export, all client-side, nothing uploaded.
125 rows, five categories
The table holds 125 entries in five categories: 26 Text, 16 Image, 11 Audio, 12 Video and 60 Application, covering 124 distinct extensions because .ts appears twice. Add up the length of every type string and the table weighs 2,098 characters. Each row renders the extension in monospace, the type, and a color-coded category badge. The search box is a case-insensitive substring match against the extension and the MIME string at once, and it combines with the category chips.
Five assets on one page
A typical page ships app.js, data.csv, logo.png, film.mp4 and font.woff2. Five lookups give text/javascript under Text, text/csv under Text, image/png under Image, video/mp4 under Video, and font/woff2 under Application. The badge and the MIME family do not always agree: .mjs and .cjs carry text/javascript yet sit in Application, while .svg is image/svg+xml but lives in Text.
Search matches substrings in both fields
Typing image returns 19 rows, not the 16 rows of the Image category, because .svg is filed under Text and .dmg plus .iso are filed under Application while their type strings contain the word image. Typing mp returns 9 rows, including .bmp because bmp contains mp, .ts through video/mp2t, and .rar plus .7z through the word compressed in x-rar-compressed. Typing ts returns 8 rows, and .docx, .xlsx and .pptx show up because their long office types end in formats.
The .ts collision and 16 shared types
The .ts collision is the only one in the table: it returns video/mp2t, the MPEG transport stream under Video, and text/typescript under Application, which is why 125 rows cover just 124 extensions. Sixteen types are shared by several extensions: text/plain covers 5 (.txt, .ini, .cfg, .log, .env), text/javascript covers 4 (.js, .jsx, .mjs, .cjs), image/jpeg covers 2. The longest type runs 73 characters (.pptx), the shortest 8 (text/css, text/xml, text/csv). For image files the question is often the dimensions and the format, which the Image Info Viewer reports, and a re-encode through the Image Compressor from png to webp changes the type you must declare.
43 unregistered x- vendor types
Forty-three of the 125 rows use the x- vendor prefix: video/x-matroska, application/x-rar-compressed, image/x-icon, text/x-sql. These are de-facto standards that were never registered with the IANA, yet every browser and server honours them, while the registered core (image/png, video/mp4, application/json) stays stable. When a file extension lies, the honest answer is in the bytes: the Hex UTF-8 Base64 Converter shows the magic bytes that reveal the true container.
Where the type string goes
Once you have the string it goes into a server config, an API header or a data URI. The Base64 Encoder/Decoder builds data:image/png;base64 URIs whose type prefix comes straight from this table. The CSV to JSON Converter turns the exported mime-types.csv into a JSON map for code. The JSON Formatter validates the payload that travels with Content-Type application/json. For the text/html side of a default web page, see the HTML Format guide.