Инструменты
Руководства

Справочник MIME / Content-Type

Справочник

Таблица частых типов MIME и их расширений с поиском.

100 % на клиенте Без бэкенда
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, не загрузится. Эта страница — ищущий справочник, чтобы вы всегда выбирали правильную метку.

Как пользоваться#

  1. Ищите по чему угодно. Поле Поиск по типу или расширению… фильтрует всю таблицу. Три способа запроса:
    • Введите расширение файла с точкой — .jpg, .woff2, .mp4 — и вы получите именно типы, сопоставленные этому расширению.
    • Введите сам тип или подтипimage, json, svg — для сужения по имени.
    • Введите словоarchive, font, spreadsheet — для поиска по описаниям.
  2. Читайте строку. Колонки: Content-Type (полный тип/подтип), Расширения (частые суффиксы файлов, сопоставленные типу), Категория (одна из семи групп верхнего уровня) и Описание (строка о том, для чего тип).
  3. Выберите правильный. Для данного расширения обычно один канонический тип; где их два (классический случай — 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/javascriptjs, mjs — «стандартный, современный MIME-тип.»
  • application/javascriptjs — «устаревший MIME-тип JavaScript (всё ещё широко встречается).»

Коротко: text/javascript — то, что предписывают использовать текущие стандарты HTML и Fetch и что выдают современные серверы; application/javascript — более старое имя из RFC 4329, которое вы всё ещё встретите в старых заголовках Content-Type и старой документации. Они значат одно и то же, и браузеры обращаются с ними идентично — но для новой конфигурации сервера предпочтительнее text/javascript.

Ещё несколько соответствий, которые стоит запомнить, — все в один поиск:

  • .jsonapplication/json
  • .svgimage/svg+xml (это изображение, но суффикс +xml помечает его как основанное на XML)
  • .woff2font/woff2 (обратите внимание на выделенную категорию верхнего уровня font/, а не application/)
  • .wasmapplication/wasm (бинарник WebAssembly — должен отдаваться ровно так, без charset, иначе не скомпилируется)
  • .pdfapplication/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 открывает в метаданных загрузки или объекта. Точный вызов различается по стеку; единственное, что должно быть верно, — финальная строка при передаче, которую и даёт этот справочник.