Skip to main content
CheckTown
Валидаторы

Поиск типа MIME: Найдите типы контента для любого расширения файла

Опубликовано 6 мин чтения
В этой статье

Что такое MIME-тип?

Тип MIME (Multipurpose Internet Mail Extensions type), также называемый медиатипом, — это стандартная метка, указывающая природу и формат файла или потока данных. Изначально разработанные для вложений электронной почты, MIME-типы теперь являются фундаментальными для того, как веб-браузеры, серверы и API взаимодействуют в отношении форматов контента.

Каждый HTTP-ответ включает заголовок Content-Type с MIME-типом, который сообщает браузеру, как обрабатывать данные — отображать как HTML, показывать изображение, воспроизводить аудио, загружать файл или разбирать как JSON.

Структура MIME-типа

Тип MIME состоит из типа, подтипа и необязательных параметров в формате: тип/подтип;параметр=значение.

  • Тип — общая категория: text, image, audio, video, application, multipart, font или model
  • Подтип — конкретный формат в рамках типа: html, png, mp4, json, pdf, octet-stream
  • Параметры — необязательные пары ключ-значение: charset=utf-8 для текстовых типов, boundary для multipart-типов

Попробуйте бесплатно — без регистрации

Найти тип MIME →

Распространённые MIME-типы

Сотни MIME-типов зарегистрированы в IANA (Internet Assigned Numbers Authority). Вот наиболее часто используемые.

  • text/html — HTML-документы, основа каждой веб-страницы
  • application/json — JSON-данные, стандартный формат для коммуникации REST API
  • image/png и image/jpeg — два наиболее распространённых формата изображений в интернете
  • application/pdf — PDF-документы, повсеместно используемые для печатных документов
  • application/octet-stream — обобщённые двоичные данные, используемые, когда конкретный тип неизвестен или для загрузки файлов

Как работает поиск MIME-типа

Поиск MIME-типа сопоставляет расширения файлов с соответствующими MIME-типами и наоборот.

  • Расширение в MIME — для расширения файла .png поиск возвращает image/png
  • MIME в расширение — для MIME-типа application/pdf поиск возвращает .pdf
  • Определение содержимого — когда расширения отсутствуют или вводят в заблуждение, некоторые инструменты используют магические числа (байты заголовка файла) для определения реального типа содержимого

MIME-типы в веб-разработке

Правильные MIME-типы необходимы для безопасности, производительности и функциональности веб-сайтов.

  • Заголовок Content-Type — серверы должны отправлять правильный MIME-тип для каждого ответа. Отдача JavaScript как text/html может создавать уязвимости XSS
  • X-Content-Type-Options: nosniff — этот заголовок безопасности предотвращает угадывание браузерами MIME-типов, применяя тип, объявленный сервером
  • Заголовок Accept — клиенты отправляют заголовки Accept, чтобы сообщить серверам, какие типы содержимого они могут обрабатывать, обеспечивая согласование содержимого

Часто задаваемые вопросы

В чём разница между MIME-типом и Content-Type?

Content-Type — это HTTP-заголовок, содержащий значение MIME-типа. MIME-тип — это идентификатор формата (например, application/json), а Content-Type — имя заголовка, несущего это значение в HTTP-коммуникации.

Можно ли создать собственный MIME-тип?

Да, используя специфические для вендора подтипы с префиксом vnd. (например, application/vnd.mycompany.myformat) или личные подтипы с префиксом prs. Экспериментальные типы используют префикс x-, хотя эта конвенция постепенно выходит из употребления.

Почему мой сервер возвращает application/octet-stream для известных типов файлов?

У сервера нет сопоставления для этого расширения файла в конфигурации MIME-типов. Добавьте правильное сопоставление в конфигурацию веб-сервера (nginx.conf, .htaccess или middleware Express).

Похожие инструменты