Перейти к содержанию

MIME типы

MIME тип — значение заголовка Content-Type — как сервер говорит, что такое файл. Расширение не достигает браузера, поэтому оно подсказка для вас, а тип — факт для клиента. Ошибка и таблица стилей игнорируется, шрифт не загружается, или PDF скачивается вместо открытия.

Эта страница показывает расширение и тип, который для него возвращает собственный инструмент поиска сайта, так что они никогда не могут расходиться. Где несколько расширений используют один тип — jpg, jpeg и jpe, или yaml и yml — каждое указано в своей строке, потому что вы ищете то, что у вас есть.

Два правила объясняют большинство сюрпризов ниже. Тип, начинающийся application/vnd., это регистрация поставщика, а не открытый стандарт — вот почему типы Office такие длинные. И тип, который сервер не знает, лучше отправить как application/octet-stream, что говорит браузеру скачать его.

Веб и текст

21

text/* это семейство, которое браузер покажет вместо скачивания, и единственное, где параметр charset имеет значение — text/html; charset=utf-8.

РасширениеMIME типЧто это
.htmltext/htmlДокумент HTML
.htmtext/htmlДокумент HTML, короткое расширение
.shtmltext/htmlHTML с server-side includes
.xhtmlapplication/xhtml+xmlДокумент XHTML
.csstext/cssТаблица стилей
.csvtext/csvЗначения, разделённые запятой
.txttext/plainПростой текст
.mdtext/markdownИсходный Markdown
.icstext/calendarСобытие календаря
.xmlapplication/xmlДокумент XML
.jstext/javascriptJavaScript
.mjstext/javascriptJavaScript ES модуль
.jsonapplication/jsonДанные JSON
.jsonldapplication/ld+jsonСтруктурированные данные JSON-LD
.webmanifestapplication/manifest+jsonМанифест веб-приложения
.yamlapplication/yamlДокумент YAML
.ymlapplication/yamlYAML, короткое расширение
.tomlapplication/tomlКонфигурация TOML
.sqlapplication/sqlСкрипт SQL
.shapplication/x-shСкрипт shell
.wasmapplication/wasmМодуль WebAssembly

Документы

12

Типы Office длинные, потому что кодируют поставщика, стандарт и часть — vnd. означает регистрацию поставщика, не открытый формат.

РасширениеMIME типЧто это
.pdfapplication/pdfДокумент PDF
.rtfapplication/rtfФорматированный текст
.docapplication/mswordДокумент Word, устаревший двоичный
.docxapplication/vnd.openxmlformats-officedocument.wordprocessingml.documentДокумент Word
.xlsapplication/vnd.ms-excelРабочая книга Excel, устаревшая двоичная
.xlsxapplication/vnd.openxmlformats-officedocument.spreadsheetml.sheetРабочая книга Excel
.pptapplication/vnd.ms-powerpointПрезентация PowerPoint, устаревшая двоичная
.pptxapplication/vnd.openxmlformats-officedocument.presentationml.presentationПрезентация PowerPoint
.odtapplication/vnd.oasis.opendocument.textТекст OpenDocument
.odsapplication/vnd.oasis.opendocument.spreadsheetТаблица OpenDocument
.odpapplication/vnd.oasis.opendocument.presentationПрезентация OpenDocument
.epubapplication/epub+zipЭлектронная книга EPUB

Изображения

14

Каждый тип изображения снифится из первых байтов, так что браузер обычно отобразит его правильно даже при неправильном ярлыке. Исключение, которое никогда не нужно неправильно помечать — SVG, это документ, который может содержать скрипт.

РасширениеMIME типЧто это
.pngimage/pngИзображение PNG
.jpgimage/jpegИзображение JPEG
.jpegimage/jpegИзображение JPEG, длинное расширение
.jpeimage/jpegИзображение JPEG, редкое расширение
.gifimage/gifИзображение GIF
.webpimage/webpИзображение WebP
.avifimage/avifИзображение AVIF
.svgimage/svg+xmlВекторное изображение SVG
.bmpimage/bmpРастровое изображение
.icoimage/vnd.microsoft.iconФайл значка
.tifimage/tiffИзображение TIFF
.tiffimage/tiffИзображение TIFF, длинное расширение
.heicimage/heicИзображение HEIC
.heifimage/heifИзображение HEIF

Аудио

11

Контейнер и кодек — разные вещи. audio/ogg говорит, как файл обёрнут; внутри может быть Vorbis, Opus или FLAC.

РасширениеMIME типЧто это
.mp3audio/mpegАудио MP3
.wavaudio/wavАудио WAV
.oggaudio/oggАудио Ogg
.ogaaudio/oggАудио Ogg, явное расширение
.opusaudio/opusАудио Opus
.m4aaudio/mp4Аудио AAC в контейнере MP4
.flacaudio/flacАудио FLAC без потерь
.webaaudio/webmАудио WebM
.aacaudio/aacСырое аудио AAC
.midaudio/midiПоследовательность MIDI
.midiaudio/midiMIDI, длинное расширение

Видео

9

Чтобы поток видео работал, нужно больше чем правильный тип — сервер должен также отвечать на range запросы, иначе браузер скачает весь файл раньше, чем начнёт воспроизведение.

РасширениеMIME типЧто это
.mp4video/mp4Видео MP4
.m4vvideo/mp4Видео MP4, расширение Apple
.webmvideo/webmВидео WebM
.ogvvideo/oggВидео Ogg
.movvideo/quicktimeВидео QuickTime
.avivideo/x-msvideoВидео AVI
.mkvvideo/x-matroskaВидео Matroska
.wmvvideo/x-ms-wmvВидео Windows Media
.3gpvideo/3gppМобильное видео 3GPP

Шрифты

5

Семейство font/* было зарегистрировано поздно; старые инструменты всё ещё отправляют application/font-woff и application/x-font-ttf, которые браузеры принимают, но не должны быть написаны для новых вещей.

РасширениеMIME типЧто это
.wofffont/woffВеб-шрифт WOFF
.woff2font/woff2Веб-шрифт WOFF2
.ttffont/ttfШрифт TrueType
.otffont/otfШрифт OpenType
.eotapplication/vnd.ms-fontobjectEmbedded OpenType, только Internet Explorer

Архивы и двоичные

12

application/octet-stream честный ответ, когда ничего лучше не известно, и также то, что заставляет скачивать вместо отображения.

РасширениеMIME типЧто это
.zipapplication/zipАрхив ZIP
.gzapplication/gzipАрхив gzip
.tarapplication/x-tarАрхив tar
.7zapplication/x-7z-compressedАрхив 7-Zip
.rarapplication/vnd.rarАрхив RAR
.bz2application/x-bzip2Архив bzip2
.isoapplication/x-iso9660-imageОбраз диска
.binapplication/octet-streamНеизвестные двоичные данные
.exeapplication/x-msdownloadИсполняемый файл Windows
.apkapplication/vnd.android.package-archiveПакет Android
.debapplication/vnd.debian.binary-packageПакет Debian
.swfapplication/x-shockwave-flashFlash фильм, давно устаревший

FAQ

Что происходит, если MIME тип неправильный?
Зависит от типа. Браузеры намеренно отклоняют таблицу стилей, которая не приходит как text/css, и скрипт модуля, который не приходит как JavaScript тип. Изображения снифятся из первых байтов и обычно переживают неправильный лейбл. И всё, что отправлено как text/plain, показывается вместо скачивания.
Правильно ли text/javascript или application/javascript?
text/javascript. Это была историческая форма, application/javascript заменил её, и текущий стандарт вернулся к text/javascript и отметил другой устаревшим. Каждый браузер принимает оба, так что это имеет значение только для того, что вы пишете в новую конфигурацию.
Почему .docx тип Word такой длинный?
Потому что он кодирует весь путь к формату: регистрацию поставщика (vnd.), семейство OOXML и какой из семейства это документ. Длина — цена записи в реестре, которая не может конфликтовать с кем-либо ещё.
Нужно ли мне charset для каждого типа?
Только для текстовых типов, и на практике только там, где по умолчанию было бы неправильно. text/html; charset=utf-8 стоит быть явным; image/png; charset=utf-8 бессмыслен. JSON определён как UTF-8 уже, так что application/json charset не берёт.
Как мне его быстро найти?
Инструмент поиска MIME типов на этом сайте конвертирует список расширений в типы или типы обратно в расширения и может выдать результат как блок конфигурации nginx или Apache.