MIME types
Медиа тип (так же известный как Multipurpose Internet Mail Extensions или MIME тип) является стандартом, который описывает природу и формат документа, файла или набора байтов. Он определён и стандартизирован в спецификации RFC 6838 .
Организация Internet Assigned Numbers Authority (IANA) является ответственной за все официально признанные MIME типы, и вы можете найти самый последний и полный лист MIME типов на их странице Медиа Типов.
Важно: Для принятия решения о том, как обрабатывать URL, браузеры используют MIME типы, а не расширения файлов, так что серверам необходимо отправлять правильные MIME типы в Content-Type заголовке ответа. При неточном задавании этого заголовка, браузеры с большой вероятностью будут неправильно интерпретировать и обрабатывать содержание файлов, из-за чего сайт будет работать неверно.
Структура MIME типа
Простейший MIME тип состоит из типа и подтипа — двух строк разделённых наклонной чертой ( / ), без использования пробелов.
Тип представляет общую категорию, в которой находится тип данных, например video или text . Подтип же строго отождествляется с отдельным типом данных, представляемых данным MIME типом. Например, для MIME типа text , подтипы могут быть plain (простой текст), html (HTML source code) или calendar (для iCalendar/ . ics ).
Необязательный параметр может быть добавлен для указания дополнительных деталей
Например, для MIME типов категории text , необязательный параметр charset может быть задан для уточнения кодировки, используемой в документе. Для объявления, что пересылаемый файл имеет кодировку UTF-8, необходимо использовать MIME тип text/plain;charset=UTF-8 . При не указании параметра charset , его значение автоматически будет задано, как ASCII ( US — ASCII ), если в настройках браузера не будет определено иначе.
MIME типы являются нечувствительными к регистру, но традиционно их пишут строчными буквами, за исключением значений параметров.
Все типы можно разделить на два класса: дискретные и многокомпонентные. Дискретные типы представляют одиночные файлы, например, одиночный текстовый, музыкальный или видео файл. Многокомпонентные типы представляют документы, составленные из нескольких частей, каждая из которых может иметь свой отдельный MIME тип, или они могут заключать в себе несколько отдельных файлов, передаваемых в одном сообщении. Например, многокомпонентные MIME типы используются для передачи нескольких изображений в одном email.
Дискретные типы
В настоящее время на IANA зарегистрированы следующие дискретные типы:
application Список IANA Любой вид бинарных данных, явно не попадающих ни в одну другу группу типов. Данные, которые будут выполняться или как-либо интерпретироваться, или данные для выполнения, которых необходимо отдельное приложение. Для указания базового типа бинарных данных (данных без определённого типа) используют тип application/octet-stream . Другие распространённые примеры включают application/pdf , application/pkcs8 и application/zip . audio Список IANA Аудио или музыкальные данные. Примеры: audio/mpeg , audio/vorbis . example Тип, зарезервированный для написания примеров, отображающих использование MIME типов. Этот тип никогда не должен использоваться вне примеров кода или документации. example может так же использоваться, как подтип. font Список IANA Данные шрифтов. Распространённые примеры включают font / woff , font / ttf и font / otf . image Список IANA Изображения или графические данные, включая векторную и растровую графику, а так же анимированные версии форматов неподвижных изображений, таких как GIF или APNG. Распространённые примеры включают image/ jpeg , image / png и image / svg + xml . model Список IANA Данные моделей для 3D объектов или сцен. Примеры: model/3mf и model/vml . text Список IANA Любые текстовые данные, так или иначе доступные для чтения человеку, а так же исходный код или текстовые данные для программ. Примеры: text / plain , text / csv и text / html . video Список IANA Видео данные или файлы. Например, MP4 фильмы ( video / mp 4 ).
Любые текстовые документы без определённого подтипа стоит отправлять, как text/plain тип. Аналогичным образом, application/octet-stream тип подойдёт бинарным документам при неопределённом или неизвестном подтипе.
Многокомпонентные типы
Многокомпонентные типы описывают категории разграниченных на части документов, где каждая из частей может иметь свой отдельный MIME тип. При работе с электронными письмами, они могут использоваться для описания нескольких отдельных файлов, передаваемых в одном сообщении. Они представляют составные документы.
За исключением multipart/form-data типа, используемого в POST методе HTML форм, и multipart/byteranges типа, используемом в ответе 206 Partial Content для отправки части документа, HTTP никаким особым образом не обрабатывает многокомпонентные типы, и просто отправляет данные в браузер (который, с большой вероятностью, предложит сохранить переданный файл, тоже не зная как его обработать).
Существуют два многокомпонентных типа:
message Список IANA Сообщение, включающее в себя другие сообщения. Этот тип может использоваться, например, для представления сообщения, которое включают в себя другое переадресованное сообщение, как часть данных, или для отправки больших сообщений по частям, как если бы каждое сообщение отправлялось отдельно. Примеры включают message / rfc 822 (для переадресованных или цитируемых сообщений) и message / partial для автоматического разделения одного большого сообщения на несколько небольших и их последующей сборки на стороне получателя. multipart Список IANA Данные составленные из нескольких компонентов, каждый из которых может иметь отдельный MIME тип. Примеры включают multipart / form — data (для данных созданных с помощью FormData API) и multipart / byteranges (определённого в RFC 7233: 5.4.1 и используемого в ответах HTTP 206 «Partial Content», когда запрашиваемые данные возвращаются по частям в нескольких сообщениях, как например, при использовании заголовка Range ).
Важные для Web-разработчиков MIME типы
application/octet-stream
Этот тип является базовым для бинарных данных. В связи с тем, что он подразумевает неопределённые бинарные данные, браузеры, как правило, не будут пытаться его обработать каком-либо образом, а вызовут для него диалоговое окно «Сохранить Как», как если бы заголовок ответа Content-Disposition имел значение attachment .
text/plain
Этот тип является базовым для текстовых файлов. Несмотря на то, что он означает «неопределённые текстовые данные», браузеры всё равно могут его отображать.
Заметьте: text/plain не означает «любой вид текстовых данных». Если браузер ожидает получения какого-то конкретного типа текстовых данных, то с большой вероятностью он не будет считать text/plain подходящим типом. Например, при загрузке text/plain документа через элемент, браузер не будет его признать правильным CSS файлом и использовать для применения стилей. Только text/css тип должен использоваться для загрузки CSS документов.
text/css
CSS документы, используемые для стилизации web-страниц должны отправляться, как text/css тип. Большинство браузеров не смогут распознавать CSS документы, загруженные с отличным от text/css MIME типом.
text/html
Все HTML данные должны пересылаться с данным типом. Альтернативные MIME типы для XHTML (например, application/xhtml+xml ) почти не используются в настоящее время.
Заметьте: Используйте application/xml или application/xhtml+xml , когда вам необходим строгий синтаксический анализ документов, разделы или элементы, не принадлежащие к пространствам имён HTML/SVG/MathML.
text/javascript
Согласно HTML спецификации: при пересылке JavaScript файлов, всегда должен использоваться MIME тип text/javascript .
По исторически сложившимся причинам, MIME Sniffing Standard (стандарт, определяющий, как браузеры должны интерпретировать медиа типы и выяснять, как обрабатывать данные при неправильно заданных медиа типах) позволяет серверам отправлять JavaScript документы, используя один из нижеперечисленных типов:
- application/javascript
- application/ecmascript
- application/x-ecmascript
- application/x-javascript
- text/javascript
- text/ecmascript
- text/javascript1.0
- text/javascript1.1
- text/javascript1.2
- text/javascript1.3
- text/javascript1.4
- text/javascript1.5
- text/jscript
- text/livescript
- text/x-ecmascript
- text/x-javascript
Заметьте: Несмотря на то, что некоторые user agent могут поддерживать какие-то из вышеперечисленных типов, вы всегда должны использовать text / javascript . Это единственный MIME тип, который гарантированно будет работать в настоящее время и в будущем.
Иногда вы можете заметить использование text/javascript MIME типа в связке с параметром charset , для уточнения кодировки, в которой был написан файл. Такое определение MIME типа является неправильным, и в большинстве случаев браузеры не станут загружать скрипт, передаваемый с таким типом.
Типы изображений
Файлы, MIME типом которых является image , содержат в себе данные изображений. Подтип определяет, какой конкретный формат изображения представлен в данных.
Лишь несколько типов изображений достаточно распространены, чтобы безопасно использоваться на веб-страницах.
Аудио и видео типы
Так же как в случае с изображениями, стандарт HTML не обязывает браузеры поддерживать какие-либо определённые форматы и кодеки для и элементов, так что при их выборе, важно брать в расчёт целевую аудиторию и диапазон браузеров (а так же версии этих браузеров), которые она может использовать.
Наше руководство по медиа форматам предоставляет список общепринятых типов, включая информацию об особых случаях при их использовании, их недостатках, совместимости, а так же других деталях.
Руководства по аудио и видео кодекам перечисляют часто поддерживаемые браузерами кодеки, предоставляя детали по их совместимости и техническую информацию, например как много аудио каналов они поддерживают, какой тип сжатия используют, и так далее. Руководство по используемым в WebRTC кодекам развивает эту тему ещё дальше, конкретно описывая кодеки, поддерживаемые популярными браузерами, так чтобы вы могли выбрать кодеки, которые имеют наилучшую поддержку в диапазоне браузеров по вашему выбору.
Что касается MIME типов для аудио и видео файлов, то чаще всего они указывают на формат контейнера (тип файла). Необязательный параметр codecs может быть добавлен к MIME типу для более точного указания, какой кодек и параметры использовались для пересылаемого файла.
Ниже перечислены наиболее часто используемые на веб-страницах MIME типы. Обратите внимание, что это не полный перечень всех доступных типов. Более полный список поддерживаемых форматов может быть наеден в руководстве по медиа форматам.
MIME тип | Аудио или видео тип |
---|---|
audio/wave audio/wav audio/x-wav audio/x-pn-wav | Аудио файл WAVE формата. С PCM аудио кодеком (WAVE кодек «1»), считающимся наиболее поддерживаемым, а так же другими, имеющими ограниченную поддержку. |
audio/webm | Аудио файл формата WebM. С Vorbis и Opus официально поддерживаемыми WebM спецификацией аудио кодеками. |
video/webm | Видео файл, с возможной аудио дорожкой, формата WebM. С VP8 и VP9, как наиболее распространёнными видео кодеками; Vorbis и Opus, как наиболее распространёнными аудио кодеками. |
audio/ogg | Аудио файл формата OGG. С Vorbis, как наиболее распространённым аудио кодеком. Хотя на данный момент имеется поддержка и Opus кодека. |
video/ogg | Видео файл, с возможной аудио дорожкой, в формате OGG. Где Theora – наиболее часто встречающийся видео кодек и Vorbis — наиболее часто встречающийся аудио кодек. Хотя использование кодека Opus становится всё более распространённым. |
application/ogg | Аудио или видео формата OGG. Где Theora – наиболее часто встречающийся видео кодек и Vorbis — наиболее часто встречающийся аудио кодек. |
multipart/form-data
multipart/form-data тип может быть использован при отправке значений из заполненной HTML Формы на сервер.
Как многокомпонентный тип документа, он состоит из различных частей, разделённых специальной границей (строкой, начинающейся с двух чёрточек — ), где каждая часть представляет собой отдельную сущность и имеет отдельные HTTP заголовки Content-Disposition и Content-Type для загружаемых файлов.
Источник
Android доступны mime-типы?
после нескольких поисков в Интернете я не мог найти место, которое могло бы сказать мне каждый существующий тип mime для разных типов носителей в приложениях android.
здесь я знаю, что существуют и работают:
на текст
на изображения
на видео
Это те, которые у меня есть и знаю, что работа, мне не хватает нескольких для видео и звука файлы. Кто-нибудь знает место, где описывается каждый тип mime android, или вы когда-нибудь использовали другой тип mime для этих разных типов носителей?
Я использую это в приложении, которое контролирует sms и mms и в типе mms управляет содержимым внутри него. Код у меня работает на любой версии выше 8.
4 ответов
Я сделал некоторые поиски в эти дни.
может быть, вы должны прочитать эти ссылки.
Я не мог найти место, которое могло бы сказать мне каждый существующий тип mime для различных типов носителей в приложениях android
в Play Store более миллиона приложений, а также другие приложения (например, предварительно установленные на устройствах, Amazon AppStore для Android). Данное устройство будет иметь некоторую комбинацию этих приложений. Данный пользователь будет иметь доступ к определенному подмножеству приложений на устройстве, если пользователь работает в Android 4.3+ ограничен профиль на планшете.
следовательно, нет никакого способа узнать, во время компиляции, какие типы MIME данное устройство Android может поддерживать для таких вещей, как ACTION_VIEW запросы активности. Сама ОС не поддерживает такие типы MIME — все они предоставляются приложениями.
здесь я знаю, что существуют и работают:
некоторые устройства могут иметь предустановленные приложения, которые поддерживают эти типы MIME. text/plain наименее вероятно, что ваш набор будет поддерживаться «из коробки».
вы можете использовать существующее отображение в Android String mimeType = MimeTypeMap.getSingleton().getMimeTypeFromExtension (ext.toLowerCase ());
текст/равнина text / html
аудио/видео mpeg audio / ogg
применение / json приложение / javascript применение/функции application / octet-stream
Источник