Перейти до вмісту

Типи MIME

Тип MIME — значення заголовка Content-Type — це те, як сервер говорить, що таке файл. Ніщо про ім'я файлу не доходить до браузера, тому розширення — це підказка для вас, а тип — це факт для клієнта. Якщо помилитись, таблиця стилів ігнорується, шрифт не завантажується або PDF завантажується замість відкриття.

Ця сторінка наводить розширення та тип, який для нього повертає власний інструмент пошуку цього сайту, тому ці два не можуть розійтись. Де кілька розширень мають один тип — jpg, jpeg та jpe або yaml та yml — кожне перелічено своїм рядком, тому ви шукаєте той, який у вас є.

Два правила пояснюють більшість сюрпризів нижче. Тип, що починається з application/vnd., — реєстрація постачальника, а не відкритий стандарт, тому типи Office такі довгі. І тип, який сервер не знає, краще відправляти як application/octet-stream, що говорить браузеру завантажити замість вгадування.

Веб та текст

21

text/* — це сімейство, яке браузер буде показувати замість завантаження, і єдине, де параметр charset має значення — text/html; charset=utf-8.

РозширенняТип MIMEЩо це таке
.htmltext/htmlHTML документ
.htmtext/htmlHTML документ, коротке розширення
.shtmltext/htmlHTML із server-side includes
.xhtmlapplication/xhtml+xmlДокумент XHTML
.csstext/cssТаблиця стилів
.csvtext/csvЗначення, розділені комами
.txttext/plainПростий текст
.mdtext/markdownДжерело Markdown
.icstext/calendarПодія календаря
.xmlapplication/xmlДокумент XML
.jstext/javascriptJavaScript
.mjstext/javascriptМодуль JavaScript ES
.jsonapplication/jsonДані JSON
.jsonldapplication/ld+jsonСтруктуровані дані JSON-LD
.webmanifestapplication/manifest+jsonМаніфест веб-додатку
.yamlapplication/yamlДокумент YAML
.ymlapplication/yamlYAML, коротке розширення
.tomlapplication/tomlКонфігурація TOML
.sqlapplication/sqlСкрипт SQL
.shapplication/x-shСкрипт shell
.wasmapplication/wasmМодуль WebAssembly

Документи

12

Типи Office довгі, тому що кодують постачальника, стандарт та частину — vnd. означає реєстрацію постачальника, а не відкритий формат.

РозширенняТип MIMEЩо це таке
.pdfapplication/pdfДокумент PDF
.rtfapplication/rtfФорматований текст
.docapplication/mswordДокумент Word, старший двійковий
.docxapplication/vnd.openxmlformats-officedocument.wordprocessingml.documentДокумент Word
.xlsapplication/vnd.ms-excelРобоча книга Excel, старша двійкова
.xlsxapplication/vnd.openxmlformats-officedocument.spreadsheetml.sheetРобоча книга Excel
.pptapplication/vnd.ms-powerpointПрезентація PowerPoint, старша двійкова
.pptxapplication/vnd.openxmlformats-officedocument.presentationml.presentationПрезентація PowerPoint
.odtapplication/vnd.oasis.opendocument.textТекст OpenDocument
.odsapplication/vnd.oasis.opendocument.spreadsheetТаблиця OpenDocument
.odpapplication/vnd.oasis.opendocument.presentationПрезентація OpenDocument
.epubapplication/epub+zipЕлектронна книга EPUB

Зображення

14

Кожен тип зображення можна розпізнати з його перших байтів, тому браузер зазвичай правильно його відобразить, навіть якщо сервер неправильно мітить. SVG — це винято, який ви ніколи не повинні неправильно позначати — це документ, який може містити скрипт.

РозширенняТип MIMEЩо це таке
.pngimage/pngЗображення PNG
.jpgimage/jpegЗображення JPEG
.jpegimage/jpegЗображення JPEG, довге розширення
.jpeimage/jpegЗображення JPEG, рідкісне розширення
.gifimage/gifЗображення GIF
.webpimage/webpЗображення WebP
.avifimage/avifЗображення AVIF
.svgimage/svg+xmlВекторне зображення SVG
.bmpimage/bmpРастрове зображення
.icoimage/vnd.microsoft.iconФайл значка
.tifimage/tiffЗображення TIFF
.tiffimage/tiffЗображення TIFF, довге розширення
.heicimage/heicЗображення HEIC
.heifimage/heifЗображення HEIF

Аудіо

11

Контейнер та кодек — це два різних питання. audio/ogg говорить, як упакований файл; всередину може бути Vorbis, Opus або FLAC.

РозширенняТип MIMEЩо це таке
.mp3audio/mpegАудіо MP3
.wavaudio/wavАудіо WAV
.oggaudio/oggАудіо Ogg
.ogaaudio/oggАудіо Ogg, явне розширення
.opusaudio/opusАудіо Opus
.m4aaudio/mp4Аудіо AAC у контейнері MP4
.flacaudio/flacБезстратне аудіо FLAC
.webaaudio/webmАудіо WebM
.aacaudio/aacСире аудіо AAC
.midaudio/midiПослідовність MIDI
.midiaudio/midiMIDI, довге розширення

Відео

9

Трансляція відео потребує більше, ніж правильного типу — сервер також має відповідати на запити діапазону, або браузер завантажує весь файл перед відтворенням.

РозширенняТип MIMEЩо це таке
.mp4video/mp4Відео MP4
.m4vvideo/mp4Відео MP4, розширення Apple
.webmvideo/webmВідео WebM
.ogvvideo/oggВідео Ogg
.movvideo/quicktimeВідео QuickTime
.avivideo/x-msvideoВідео AVI
.mkvvideo/x-matroskaВідео Matroska
.wmvvideo/x-ms-wmvВідео Windows Media
.3gpvideo/3gppМобільне відео 3GPP

Шрифти

5

Сімейство font/* було зареєстровано пізно; старіше програмне забезпечення все ще відправляє application/font-woff та application/x-font-ttf, які браузери приймають, але для нового це не повинно писатися.

РозширенняТип MIMEЩо це таке
.wofffont/woffВеб-шрифт WOFF
.woff2font/woff2Веб-шрифт WOFF2
.ttffont/ttfШрифт TrueType
.otffont/otfШрифт OpenType
.eotapplication/vnd.ms-fontobjectEmbedded OpenType, тільки для Internet Explorer

Архіви та двійкові файли

12

application/octet-stream — це чесна відповідь, коли нічого кращого невідомо, і це також те, що змушує завантажити замість відобразити.

РозширенняТип MIMEЩо це таке
.zipapplication/zipАрхів ZIP
.gzapplication/gzipАрхів Gzip
.tarapplication/x-tarАрхів Tar
.7zapplication/x-7z-compressedАрхів 7-Zip
.rarapplication/vnd.rarАрхів RAR
.bz2application/x-bzip2Архів bzip2
.isoapplication/x-iso9660-imageОбраз диска
.binapplication/octet-streamНевідомі двійкові дані
.exeapplication/x-msdownloadВиконуваний файл Windows
.apkapplication/vnd.android.package-archiveПакет Android
.debapplication/vnd.debian.binary-packageПакет Debian
.swfapplication/x-shockwave-flashFlash фільм, давно застарілий

FAQ

Що буває, якщо тип MIME неправильний?
Це залежить від типу. Браузери умисно відхиляють таблицю стилів, яка не приходить як text/css, та модульний скрипт, який не приходить як тип JavaScript. Зображення виявляються з їх перших байтів та зазвичай переживають неправильну мітку. І все, що подається як text/plain, показується замість завантаження.
Чи правильно text/javascript або application/javascript?
text/javascript. Це була історична форма, application/javascript її замінив, і поточний стандарт повернувся до text/javascript та позначає той інший застарілим. Кожен браузер приймає обидва, тому це має значення лише для того, що ви пишете в новій конфігурації.
Чому тип Word .docx такий довгий?
Тому що він кодує весь шлях до формату: реєстрацію постачальника (vnd.), сімейство OOXML та те, який із цього сімейства документ. Довжина — це ціна запису в реєстрі, який не може конфліктувати з кимось іншим.
Чи мені потрібно charset для кожного типу?
Тільки для текстових типів, і на практиці тільки там, де стандартне значення було б неправильним. text/html; charset=utf-8 варто бути явним про; image/png; charset=utf-8 невезучий. JSON визначений як UTF-8, тому application/json не приймає charset.
Як я швидко шукаю один?
Інструмент пошуку типів MIME на цьому сайті перетворює список розширень на типи або типи назад на розширення та може видаватись результат як конфігураційний блок nginx або Apache.