Справочник MIME / Content-Type
СправочникТаблица частых типов MIME и их расширений с поиском.
| Content-Type | Расширения | Категория | Описание |
|---|
На этой странице
Что такое справочник типов MIME?#
MIME-тип (он же медиатип или Content-Type) — короткая метка, сообщающая получателю, какие байты содержит документ: text/html — веб-страница, application/json — данные JSON, image/png — картинка PNG. Формат всегда тип/подтип — широкая категория, косая черта, затем конкретное имя. HTTP полагается на эти метки, чтобы решить, отрисовывать ответ, скачать, разобрать или отвергнуть; браузеры — чтобы выбрать правильный обработчик (<img> ожидает тип изображения, <script> — тип JavaScript); почта — чтобы прикреплять файлы.
Формат выглядит простым, но ландшафт действительно запутан. Есть семь категорий верхнего уровня (application, audio, font, image, model, text, video), многие файлы подходят нескольким расширениям (.jpg, .jpeg, .jpe — все это image/jpeg), у некоторых типов есть старая и современная форма (application/javascript против text/javascript), а выбор неправильного вызывает реальные баги — таблица стилей, отданная как text/plain, не применится, шрифт, отданный как application/octet-stream, не загрузится. Эта страница — ищущий справочник, чтобы вы всегда выбирали правильную метку.
Как пользоваться#
- Ищите по чему угодно. Поле Поиск по типу или расширению… фильтрует всю таблицу. Три способа запроса:
- Введите расширение файла с точкой —
.jpg,.woff2,.mp4— и вы получите именно типы, сопоставленные этому расширению. - Введите сам тип или подтип —
image,json,svg— для сужения по имени. - Введите слово —
archive,font,spreadsheet— для поиска по описаниям.
- Введите расширение файла с точкой —
- Читайте строку. Колонки: Content-Type (полный
тип/подтип), Расширения (частые суффиксы файлов, сопоставленные типу), Категория (одна из семи групп верхнего уровня) и Описание (строка о том, для чего тип). - Выберите правильный. Для данного расширения обычно один канонический тип; где их два (классический случай — JavaScript), описание поясняет, какой актуален.
Ключевые возможности#
- Семь категорий в одной таблице. Типы application, audio, font, image, model, text и video живут вместе, поэтому можно перепрыгнуть от шрифтового вопроса к видео, не меняя страницу.
- Поиск, начинающийся с расширения. Частая реальная задача — «у меня файл
.xlsx, что ставить как Content-Type?» — ввод.xlsxведёт прямо кapplication/vnd.openxmlformats-officedocument.spreadsheetml.sheet. - И современные, и Legacy-имена. Где у типа есть старая форма, всё ещё встречающаяся вживую, обе перечислены с пометкой, поэтому вы узнаете HTTP-заголовок в любую сторону.
- Включены vendor-типы. Microsoft Office, ZIP, gzip, 7z, RAR, WebAssembly, Web App Manifest, GraphQL — длинные формы
application/vnd.*иapplication/*+json/application/*+xml— всё здесь. - Локально и мгновенно. Набор данных встроен в страницу; каждый поиск — клиентский фильтр без запроса.
Разбор примера#
JavaScript — самая запутанная запись, потому что тип за годы менял имена, а серверы до сих пор шлют оба. Поищите javascript, и вы получите две строки:
text/javascript—js,mjs— «стандартный, современный MIME-тип.»application/javascript—js— «устаревший MIME-тип JavaScript (всё ещё широко встречается).»
Коротко: text/javascript — то, что предписывают использовать текущие стандарты HTML и Fetch и что выдают современные серверы; application/javascript — более старое имя из RFC 4329, которое вы всё ещё встретите в старых заголовках Content-Type и старой документации. Они значат одно и то же, и браузеры обращаются с ними идентично — но для новой конфигурации сервера предпочтительнее text/javascript.
Ещё несколько соответствий, которые стоит запомнить, — все в один поиск:
.json→application/json.svg→image/svg+xml(это изображение, но суффикс+xmlпомечает его как основанное на XML).woff2→font/woff2(обратите внимание на выделенную категорию верхнего уровняfont/, а неapplication/).wasm→application/wasm(бинарник WebAssembly — должен отдаваться ровно так, без charset, иначе не скомпилируется).pdf→application/pdf
Когда тип неизвестен, серверы откатываются к application/octet-stream — универсальному типу «здесь какие-то бинарные данные, ничего не предполагайте». Браузеры обычно отвечают скачиванием файла вместо попытки его отобразить.
FAQ#
text/javascript или application/javascript — что использовать?#
Для нового кода отправляйте text/javascript. Это то, чего требуют текущие спецификации WHATWG HTML и Fetch и что браузеры реально сверяют, решая, выполнять ли <script>. application/javascript всё ещё работает везде (это более старый стандарт), но это Legacy-форма. Конфигурируя новый сервер, MIME-базу или сборочный инструмент, по умолчанию выбирайте text/javascript.
Почему у SVG в типе есть +xml?#
Суффикс +xml — это суффикс структурированного синтаксиса: он сообщает, что сериализация типа под капотом — XML. Поэтому image/svg+xml значит «изображение, конкретно описанное на XML». То же соглашение встречается в application/ld+json (связанные данные, сериализованные как JSON) и application/graphql+json. Инструменты, понимающие суффикс, могут откатиться к общему XML- или JSON-парсеру.
Для чего нужен application/octet-stream?#
Это всё для «произвольные бинарные данные, тип неизвестен.» Серверы возвращают его, когда не могут определить файл, а безопасное поведение клиента — скачать, а не пытаться отрисовать или выполнить. Если файл, который вы ожидали открыть в браузере, вдруг начинает скачиваться, виноват обычно ошибочный или отсутствующий Content-Type (складывающийся в octet-stream).
Как реально задать Content-Type для моих файлов?#
Зависит от того, откуда раздаются файлы: статический файловый сервер читает его из расширения через MIME-базу, веб-фреймворк задаёт в коде (часто response.setContentType(...) или присвоение заголовка), а CDN открывает в метаданных загрузки или объекта. Точный вызов различается по стеку; единственное, что должно быть верно, — финальная строка при передаче, которую и даёт этот справочник.