Find the right Content-Type for any file extension, and the extension for any MIME type.
Showing 94 of 94 types
| Extension | MIME type | Description | |
|---|---|---|---|
| .html .htm | text/html | HTMLText based | |
| .css | text/css | CSSText based | |
| .js .mjs | text/javascriptAlso seen as: application/javascript, application/x-javascript | JavaScriptText based | |
| .json | application/json | JSONText based | |
| .jsonld | application/ld+json | JSON-LDText based | |
| .xml | application/xmlAlso seen as: text/xml | XMLText based | |
| .txt .text | text/plain | Plain textText based | |
| .csv | text/csv | CSVText based | |
| .tsv | text/tab-separated-values | TSVText based | |
| .md .markdown | text/markdown | MarkdownText based | |
| .ics | text/calendar | iCalendarText based | |
| .vcf | text/vcard | vCardText based | |
| .yaml .yml | application/yamlAlso seen as: text/yaml, application/x-yaml | YAMLText based | |
| .toml | application/toml | TOMLText based | |
| .ts | text/plainAlso seen as: application/typescript, video/mp2t | TypeScript sourceText based | |
| .jsx .tsx | text/plain | React sourceText based | |
| .php | application/x-httpd-php | PHPText based | |
| .py | text/x-python | PythonText based | |
| .sh | application/x-sh | Shell scriptText based | |
| .sql | application/sql | SQLText based | |
| .rtf | application/rtf | Rich Text FormatText based | |
| .map | application/json | Source mapText based | |
| .webmanifest | application/manifest+json | Web app manifestText based | |
| .rss | application/rss+xml | RSS feedText based | |
| .atom | application/atom+xml | Atom feedText based | |
| .wasm | application/wasm | WebAssemblyBinary | |
| .jpg .jpeg .jpe | image/jpeg | JPEG imageBinary | |
| .png | image/png | PNG imageBinary | |
| .gif | image/gif | GIF imageBinary | |
| .webp | image/webp | WebP imageBinary | |
| .avif | image/avif | AVIF imageBinary | |
| .svg | image/svg+xml | SVG imageText based | |
| .ico | image/x-iconAlso seen as: image/vnd.microsoft.icon | IconBinary | |
| .bmp | image/bmp | Bitmap imageBinary | |
| .tif .tiff | image/tiff | TIFF imageBinary | |
| .heic | image/heic | HEIC imageBinary | |
| .heif | image/heif | HEIF imageBinary | |
| .jxl | image/jxl | JPEG XL imageBinary | |
| .apng | image/apng | Animated PNGBinary | |
| .psd | image/vnd.adobe.photoshop | Photoshop documentBinary | |
| .mp3 | audio/mpeg | MP3 audioBinary | |
| .wav | audio/wavAlso seen as: audio/x-wav, audio/wave | WAV audioBinary | |
| .ogg .oga | audio/ogg | Ogg audioBinary | |
| .opus | audio/opus | Opus audioBinary | |
| .m4a | audio/mp4Also seen as: audio/x-m4a | MPEG-4 audioBinary | |
| .aac | audio/aac | AAC audioBinary | |
| .flac | audio/flac | FLAC audioBinary | |
| .weba | audio/webm | WebM audioBinary | |
| .mid .midi | audio/midi | MIDIBinary | |
| .aif .aiff | audio/aiff | AIFF audioBinary | |
| .mp4 | video/mp4 | MPEG-4 videoBinary | |
| .webm | video/webm | WebM videoBinary | |
| .mov | video/quicktime | QuickTime videoBinary | |
| .avi | video/x-msvideo | AVI videoBinary | |
| .mkv | video/x-matroska | Matroska videoBinary | |
| .ogv | video/ogg | Ogg videoBinary | |
| .mpeg .mpg | video/mpeg | MPEG videoBinary | |
| .3gp | video/3gpp | 3GPP videoBinary | |
| .ts | video/mp2t | MPEG transport streamBinary | |
| .m3u8 | application/vnd.apple.mpegurl | HLS playlistText based | |
| .woff | font/woff | WOFF fontBinary | |
| .woff2 | font/woff2 | WOFF2 fontBinary | |
| .ttf | font/ttf | TrueType fontBinary | |
| .otf | font/otf | OpenType fontBinary | |
| .eot | application/vnd.ms-fontobject | Embedded OpenTypeBinary | |
| application/pdf | PDF documentBinary | ||
| .doc | application/msword | Word document (legacy)Binary | |
| .docx | application/vnd.openxmlformats-officedocument.wordprocessingml.document | Word documentBinary | |
| .xls | application/vnd.ms-excel | Excel workbook (legacy)Binary | |
| .xlsx | application/vnd.openxmlformats-officedocument.spreadsheetml.sheet | Excel workbookBinary | |
| .ppt | application/vnd.ms-powerpoint | PowerPoint (legacy)Binary | |
| .pptx | application/vnd.openxmlformats-officedocument.presentationml.presentation | PowerPoint presentationBinary | |
| .odt | application/vnd.oasis.opendocument.text | OpenDocument textBinary | |
| .ods | application/vnd.oasis.opendocument.spreadsheet | OpenDocument spreadsheetBinary | |
| .epub | application/epub+zip | EPUB bookBinary | |
| .zip | application/zip | ZIP archiveBinary | |
| .gz | application/gzip | Gzip archiveBinary | |
| .tar | application/x-tar | Tar archiveBinary | |
| .rar | application/vnd.rar | RAR archiveBinary | |
| .7z | application/x-7z-compressed | 7-Zip archiveBinary | |
| .bz2 | application/x-bzip2 | Bzip2 archiveBinary | |
| .xz | application/x-xz | XZ archiveBinary | |
| .zst | application/zstd | Zstandard archiveBinary | |
| .bin | application/octet-stream | Arbitrary binary dataBinary | |
| .exe | application/vnd.microsoft.portable-executable | Windows executableBinary | |
| .dmg | application/x-apple-diskimage | macOS disk imageBinary | |
| .apk | application/vnd.android.package-archive | Android packageBinary | |
| .ipa | application/octet-stream | iOS app archiveBinary | |
| .deb | application/vnd.debian.binary-package | Debian packageBinary | |
| .rpm | application/x-rpm | RPM packageBinary | |
| .iso | application/x-iso9660-image | Disc imageBinary | |
| .torrent | application/x-bittorrent | BitTorrent fileBinary | |
| .pem .crt .cer | application/x-x509-ca-cert | X.509 certificateText based | |
| .p12 .pfx | application/x-pkcs12 | PKCS#12 keystoreBinary |
The copy button gives you the full header value. Text based types get charset=utf-8 added, because without it the browser guesses and sometimes guesses wrong.
Type an extension to get the MIME type, or a MIME type to get the extensions. Format names work too, so searching for webp or for excel both land somewhere useful.
Several formats have a registered type and one or two that are still common in the wild. Both are listed, because the one in your legacy config is often the unofficial one.
The copy button gives you the complete Content-Type, with charset already added for the text based types that need it.
It tells the receiving end what a stream of bytes actually is. A browser does not look at the file extension of something it downloaded over HTTP: it reads the Content-Type header. Get it wrong and a stylesheet is ignored, a script refuses to run, or a PDF opens as gibberish.
On text based types: HTML, CSS, JavaScript, plain text, CSV, JSON and SVG. Without it, the browser has to guess the encoding, and a wrong guess is exactly how Turkish characters turn into mojibake. Binary types like images do not take a charset.
text/javascript. It was the other way round for years, which is why both are everywhere, but the current specification makes text/javascript the standard one and marks application/javascript obsolete. Both work in every browser.
Bytes we cannot describe any further. It is the correct answer for genuinely unknown data and the wrong answer for anything you do know, because browsers respond to it by downloading rather than displaying. A PDF served as octet-stream downloads instead of opening in the viewer.
Almost always because it is served as text/plain or as octet-stream. SVG must be image/svg+xml or the browser treats it as text. This is the single most common MIME misconfiguration on static hosts.
Because the extension is genuinely ambiguous: it is TypeScript source to a developer and an MPEG transport stream to a video player. Servers usually have to be told which one you mean, and serving TypeScript source to a browser is rarely what you want anyway.
No. The type in a multipart upload is supplied by the client and can say anything. Check the actual file signature on the server, and never decide what to do with a file based on a header the uploader controls.
In your web server or CDN. Nginx reads a mime.types file, Apache uses AddType, and most static hosts infer it from the extension. When something behaves oddly, the network panel shows what was actually sent, which is usually different from what you assumed.
Every HTTP status code with what it means and when to send it, searchable by number, phrase or description.
Open ToolBreak a user agent string into browser, engine, operating system and device, including bots.
Open ToolConvert between JPEG, PNG and WebP in your browser, with quality control and a live size comparison. AVIF where the browser supports it.
Open Tool