MIME-типы по расширению
Браузер решает, что делать с файлом, по заголовку Content-Type: картинка с типом text/plain откроется как текст, шрифт с неверным типом не подключится, скрипт с типом text/html современный браузер выполнять откажется. Расширение файла для браузера — только подсказка.
Почему заголовок важнее расширения
Браузер решает, что делать с файлом, по заголовку Content-Type. Картинка, отданная с типом text/plain, откроется как текст; PDF с неверным типом скачается вместо просмотра; скрипт с типом text/html вообще не выполнится. Инструмент подбирает правильный тип по расширению и показывает обратное соответствие.
Тип состоит из двух частей через косую черту: группа и подтип. Группа говорит о характере данных — text, image, audio, video, application, — подтип уточняет формат. Для текстовых типов важна ещё кодировка: без указания charset браузер угадывает её сам и иногда ошибается.
Расширение файла и тип связаны только соглашением. Сервер отдаёт тот заголовок, который настроен, и переименование файла ничего не меняет. Отсюда типичная ошибка настройки: новый формат вроде webp или woff2 отдаётся как поток байтов, и браузер отказывается его обрабатывать.

| Расширение | MIME-тип |
|---|---|
| .webp | image/webp |
| .svg | image/svg+xml |
| .woff2 | font/woff2 |
| .json | application/json |
| .csv | text/csv |
Из электронной почты в веб
Стандарт MIME придумали для электронной почты. Натаниэль Боренстейн и Нед Фрид описали его в 1992 году документом RFC 1341: до этого письмо могло содержать только семибитный текст, и отправить вложение было нечем. MIME добавил заголовки, объявляющие тип содержимого и способ кодирования.
Веб унаследовал систему целиком. Тот же заголовок Content-Type, та же двухчастная запись, тот же реестр. Ведёт реестр организация IANA, и новый тип регистрируется формальной процедурой — поэтому у свежих форматов долгое время нет официального типа и они ходят с приставкой x-.
Отдельная история — угадывание типа браузером. Раньше браузеры заглядывали в начало файла и решали сами, если заголовок казался неправдоподобным. Это открывало дорогу атакам: безобидная с виду картинка выполнялась как скрипт. Сегодня угадывание отключают заголовком X-Content-Type-Options со значением nosniff. Отдельная группа типов описывает составные сообщения: multipart используется и в почтовых письмах с вложениями, и в веб-формах при загрузке файлов.


Как настроить сервер и закрыть угадывание
Найдите расширение — получите тип для настройки сервера. Для текстовых форматов добавляйте кодировку: text/html без charset=utf-8 на кириллическом сайте даёт шанс браузеру угадать неверно и показать кракозябры.
Если файл скачивается вместо того, чтобы открыться, начните проверку с заголовка ответа: почти всегда там стоит application/octet-stream — тип по умолчанию для незнакомого расширения. Добавьте нужное соответствие в настройки сервера.
Включите заголовок nosniff на всех ответах: он запрещает браузеру угадывать тип и закрывает целый класс атак через загруженные пользователями файлы. Проверить, что именно отдаёт сервер, поможет проверка ответа сервера.
Для загружаемых пользователями файлов не доверяйте типу, который прислал браузер: он берётся из расширения на клиентской машине и подделывается тривиально. Проверяйте содержимое на сервере и отдавайте свой заголовок.
Отдельная тонкость с кодировкой в имени файла. Заголовок Content-Disposition с кириллическим именем требует особой записи, иначе браузер сохранит файл под именем из вопросительных знаков. Это регулярно всплывает при выгрузке отчётов и решается кодированием имени по отдельному правилу из стандарта, которое умеют все браузеры последних лет.
| Первый документ | RFC 1341, 1992 |
| Авторы | Боренстейн и Фрид |
| Придуман для | электронной почты |
| Реестр ведёт | IANA |
| Частей в типе | две |
| Тип по умолчанию | application/octet-stream |
| Кодировка | параметр charset |
| Запрет угадывания | X-Content-Type-Options: nosniff |
Как пользоваться
Справочник показывает MIME-тип для 130 расширений — страницы и скрипты, документы, картинки, звук, видео, шрифты, архивы, программы — с пометками, где у типа есть устаревшие варианты. Поиск работает в обе стороны: по расширению и по типу. Для каждой строки можно скопировать заголовок Content-Type или директиву для nginx. Типы — по реестру IANA и спецификациям; неофициальные помечены. Проверено 04.09.2026.
- Например, webp, docx, .woff2 или image/svg — список фильтруется на лету, точки и регистр не важны.
- Кнопки оставляют только веб, документы, картинки, звук, видео, шрифты, архивы или программы.
- У каждой строки — кнопки для строки Content-Type и для записи в mime.types nginx.
- Что реально отдаёт сервер, видно в проверке ответа сервера: там показываются заголовки любого адреса.
Частые вопросы
Что такое MIME-тип и зачем он в заголовке
Формат содержимого в виде «тип/подтип»: image/png, text/html, application/pdf. Сервер сообщает его в заголовке Content-Type, браузер по нему выбирает, показать файл, выполнить или скачать. Расширение файла для браузера — только подсказка; если тип и содержимое не совпадают, включается защита: заголовок X-Content-Type-Options: nosniff запрещает браузеру угадывать.
Какой тип у JavaScript
text/javascript — единственный рекомендованный с 2022 года по RFC 9239. application/javascript и application/x-javascript браузеры по-прежнему понимают, но считаются устаревшими. Для ES-модулей тип тот же, расширение .mjs не обязательно.
Что отдавать неизвестным файлам
application/octet-stream — «двоичные данные», браузер предложит скачать. Так по умолчанию отвечают nginx и Apache на расширения, которых нет в их таблице mime.types. Если файл на самом деле текстовый, лучше прописать точный тип: text/plain или конкретный.
Почему шрифт не грузится с чужого домена
Дело не в типе: шрифты подчиняются CORS, серверу нужно отдать Access-Control-Allow-Origin. Тип для WOFF2 — font/woff2, старые записи application/font-woff2 и application/x-font-woff устарели, но работают.
Как добавить тип в nginx и Apache
nginx: в файле mime.types строка вида «image/avif avif;» или в конфиге сайта «types { image/avif avif; }». Apache: в .htaccess «AddType image/avif .avif». Кнопка у строки копирует готовую запись.
Спросите нейросети об инструменте
Похожие инструменты
Список URL → коды ответа 200/301/404, цепочки редиректов, финальный адрес и время ответа. Для аудита и чистки битых ссылок. До 30 адресов за раз.
ОткрытьФорматы бумагиСерии A, B и C в миллиметрах, дюймах и пикселях при любом DPI. Вес листа по плотности, обратный поиск формата и сравнение с Letter и Legal.
ОткрытьНорма кормаСуточная норма для собаки и кошки по ветеринарной формуле, сразу в граммах вашего корма: разбивка по кормлениям, смешанный рацион и запас упаковки.
ОткрытьКоды ответов HTTPВсе коды состояния от 100 до 511 с расшифровкой по-русски, что каждый значит для пользователя, поисковика и разработчика; поиск по номеру.
ОткрытьСписок портов TCP и UDPРазбор номера порта: служба, протокол, диапазон и нужны ли права root. Таблица ходовых портов с пояснениями по-русски и весь well-known диапазон 0–1023 из реестра IANA с поиском.
ОткрытьКоды клавиш JavaScriptНажмите клавишу — увидите event.key, code, keyCode, which и модификаторы; таблица кодов всех клавиш для обработчиков keydown.
ОткрытьЕщё инструменты для кода и данных
Base64 и URL, форматтер и сравнение JSON, хеши, регулярные выражения, cron, подсети, UUID, QR-код и Unix-время — в разделе 42 инструмента.