MIME Type Dictionary
Quickly find the correct MIME type (Content-Type) for any file extension, or look up extensions by MIME type.
Clicking an item copies its MIME type. For text-based types (text/*, application/json, etc.), append ; charset=utf-8 to ensure Korean characters display correctly. Do not rely solely on extensions; server-side content verification is also recommended.
What is the MIME Type Dictionary?
Ever been stuck trying to remember the right `Content-Type` for a file? Sending the wrong MIME type header can cause browsers to display files incorrectly or force downloads. This MIME type dictionary solves that problem. Instantly search hundreds of common types by extension (`.pdf`), MIME type (`application/json`), or even a simple description like `Excel` or `PowerPoint`. Results appear as you type. Click any entry to copy the full MIME type; for text-based formats, it even automatically appends `; charset=utf-8` to prevent character encoding issues.
How to use
- Enter a query into the "Search" box. You can use a file extension like `pdf`, a MIME type like `application/json`, or a description like `Word`.
- Results are filtered in real-time as you type, with frequently used types appearing at the top.
- To narrow your search, click a category button like "Web/Code", "Image", or "Document".
- Find the item you need in the list and click it. The full MIME type is immediately copied to your clipboard.
- For text-based types (e.g., `text/html`, `application/json`), `; charset=utf-8` is automatically added to the copied value to ensure proper display of international characters.
MIME Type Dictionary guide
How this tool is used in real work, and what to watch out for.
What actually happens when the Content-Type is wrong
The MIME type is the only official channel to tell a browser what a file is. The file extension is just a hint; the browser trusts the Content-Type header sent by the server first. If this value is wrong, the file itself is fine, but it will behave strangely.
| Symptom | Common Cause | How to Fix |
|---|---|---|
| PDFs or images are downloaded instead of displayed | application/octet-stream | Use the correct type, like application/pdf or image/png |
| File opens in the browser when a download was intended | Type is correct, but no instruction to download | Add the Content-Disposition: attachment header |
| CSS is included, but styles are not applied | text/plain | text/css |
| JavaScript module is rejected and fails to load | text/plain or octet-stream | text/javascript |
| Web font is not applied | octet-stream | font/woff2 |
| Excel shows a warning before opening a downloaded .xlsx file | vnd.ms-excel (the old .xls type) | The openxmlformatsโฆ .sheet type (search and copy it) |
When should you add charset=utf-8?
In this dictionary, text-based types like text/html and application/json are shown with `; charset=utf-8`. When you click an item, it's copied with that suffix included. This is not added for binary files like images or archives, because they don't have the concept of character encoding.
If you omit the charset, the browser has to guess the encoding. This might go unnoticed for pages with only English text, but it will break the moment non-ASCII characters appear. If it works locally but breaks on deployment, your server is likely sending the content without a charset.
- HTML: The `charset` in the response header overrides the `<meta charset>` tag inside the document. If changing the meta tag has no effect, check the server headers.
- JSON: The specification for `application/json` defaults to UTF-8, so it's generally safe even without a `charset`. But there's no harm in specifying it.
- CSV: Even if you send a file as `text/csv; charset=utf-8`, Excel will ignore the header and open it using the system's default encoding (e.g., CP949 in Korea), breaking non-ASCII characters. To make Excel recognize UTF-8, you must include a UTF-8 BOM (Byte Order Mark: EF BB BF) at the very beginning of the file.
Why you shouldn't trust only the MIME type for file upload validation
The `Content-Type` that a browser attaches to a file upload is usually just based on the file extension. This means an attacker can change it to whatever they want. Sending an `exploit.php` file declared as `image/png` doesn't even require developer tools; a single `curl` command is enough. A check like "allow if MIME is `image/*`" is not real validation.
- Use an extension whitelist. It must be a list of allowed extensionsโa blacklist is easily bypassed with variants like `.phtml`, `.php5`, or uppercase `.PHP`.
- Also, verify the file's signature (magic bytes) at the beginning. For example, a PNG file always starts with `89 50 4E 47`.
- Generate a new, safe filename on the server. Never use the name provided by the user, as it can be an entry point for path traversal (`../`) and extension forgery.
- Disable script execution in the uploads directory. This is why `x-httpd-php` is listed in this dictionary with the note "should not be served with this type."
- SVG files look like images but are XML documents that can contain scripts. Serving a user-uploaded SVG directly can lead to XSS attacks. Serve them from a separate domain or sanitize them first.
MIME types that are particularly confusing in Korea
Some formats frequently encountered in Korean business environments were standardized late or are Korea-specific, so their MIME type notations are not consistent. This dictionary lists the de facto types used in practice.
| Format | Value in this Dictionary | Good to Know |
|---|---|---|
| HWP | application/x-hwp | Many systems also send `application/haansofthwp`. Match the type to what the receiving system expects. |
| HWPX | application/vnd.hancom.hwpx | An open standard. It's actually a ZIP file, so MIME sniffing might mistake it for one. |
| ALZ ยท EGG | x-alz-compressed ยท x-egg | These are Korea-specific, so their types are just conventions. When in doubt, use `octet-stream`. |
| xlsx | openxmlformatsโฆ .sheet | If you lazily use `vnd.ms-excel` because it's shorter, it will be treated as an old `.xls` file, triggering a warning. |
Search tips and the limits of this dictionary
The search box accepts anything: an extension (pdf), a MIME type (application/json), or a descriptive keyword (Excel, Hangul, font). You can include the dot and type `.pdf`, or narrow your search to only extensions or MIME types using the tabs above. You can also use the category chips to browse types like images or documents.
This dictionary is a curated list of types used in web development, not the entire official IANA registry. For special formats not found here, check the IANA Media Types registry directly. If a type isn't registered at all, `application/octet-stream` is the correct answerโit will always be treated as a file to download.
# Check what a server is actually sending (headers only)
curl -sI https://example.com/file.pdf | grep -i content-type
# Guess a file's type from its content (without trusting the extension)
file --mime-type -b ./upload.png
Frequently asked questions
Why are MIME types important?
They tell the browser how to handle a file. `text/html` is rendered as a webpage, `image/png` is shown as a picture, and `application/octet-stream` triggers a download. An incorrect type can break your site or create security risks.
What can I search for?
You can search by file extension (e.g., `.xlsx`), the full MIME type (`application/json`), or a description (`Excel`, `photo`). The search is flexible, covering extensions, types, and descriptions to help you find what you need.
Why is `; charset=utf-8` added when I copy?
For text files like HTML, JSON, or CSS, this part tells the browser to use UTF-8 encoding, which prevents non-English characters from breaking. The tool adds it automatically for convenience on relevant types to help you avoid common mistakes.
The MIME type I need isn't here.
This dictionary covers hundreds of common types. If a specific type is missing, you can often use `application/octet-stream` to force the browser to download the file. For official types, refer to the IANA Media Types registry.