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

Пошук типу MIME: Знайдіть типи контенту для будь-якого розширення файлу

Опубліковано 6 хв читання
У цій статті

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

MIME-тип (тип Multipurpose Internet Mail Extensions), також відомий як медіатип, — це стандартна мітка, що вказує на природу та формат файлу або потоку даних. Спочатку розроблені для вкладень електронної пошти, 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 для багатокомпонентних типів

Спробуйте безкоштовно — реєстрація не потрібна

Знайти тип 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 або проміжне програмне забезпечення Express).

Пов'язані інструменти