У цій статті
Що таке 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).