Тип носителя
Эта статья может сбивать с толку или быть непонятной читателям . ( Апрель 2023 г. ) |
В информационных и коммуникационных технологиях — тип носителя , [1] [2] тип контента [2] [3] или MIME-тип [1] [4] [5] представляет собой идентификатор, состоящий из двух частей, для форматов файлов и содержимого формата. Их назначение сравнимо с расширениями имен файлов и унифицированными идентификаторами типов , поскольку они идентифицируют предполагаемый формат данных. В основном они используются технологиями, лежащими в основе Интернета , а также используются в настольных системах Linux.
Управление по присвоению номеров Интернета (IANA) является официальным органом по стандартизации и публикации этих классификаций. Типы мультимедиа изначально были определены в запросе комментариев. RFC 2045 (MIME), часть первая: формат тел интернет-сообщений (ноябрь 1996 г.) в ноябре 1996 г. как часть спецификации MIME (многоцелевые расширения почты Интернета) для обозначения типа электронной почты ; содержимого и вложений сообщений [6] отсюда и оригинальное название MIME-тип . Типы мультимедиа также используются другими интернет-протоколами, такими как HTTP , [7] форматы файлов документов, такие как HTML , [8] и спецификации XDG , реализованные в средах рабочего стола Linux , [5] для аналогичных целей.
Терминология
[ редактировать ]Различные интернет-стандарты или организации по веб-стандартам различаются по предпочтительному термину для этого типа идентификатора.
IANA используют термин «тип носителя» и и IETF считают термин «тип MIME» устаревшим. [1] поскольку типы мультимедиа стали использоваться в контекстах, не связанных с электронной почтой, например HTTP. Напротив, WHATWG продолжает использовать термин «тип MIME» и не рекомендует использовать термин «тип носителя» как двусмысленный, поскольку он используется в другом значении в связи с CSS. @media
особенность. [4]
Заголовок ответа HTTP для предоставления типа носителя: Content-Type
. [2] W3C использовал ContentType
как имя типа данных XML для типа носителя. [3] В спецификациях XDG Linux, , реализованных в средах рабочего стола по-прежнему используется термин «тип MIME». [5]
Структура
[ редактировать ]Тип носителя состоит из типа и подтипа , которые далее структурируются в виде дерева . Тип носителя может дополнительно определять суффикс и параметры :
mime-type = type "/" [tree "."] subtype ["+" suffix]* [";" parameter];
Например, HTML-файл может быть обозначен text/html; charset=UTF-8
. В этом примере text
это тип, html
это подтип, и charset=UTF-8
— необязательный параметр, указывающий кодировку символов.
Типы, подтипы и имена параметров не чувствительны к регистру. Значения параметров обычно чувствительны к регистру, но могут интерпретироваться без учета регистра в зависимости от предполагаемого использования. [6]
Типы
[ редактировать ]Часть «тип» определяет широкое использование типа носителя. По состоянию на ноябрь 1996 г. зарегистрированными типами были: application
, audio
, image
, message
, multipart
, text
и video
. [6] К июлю 2024 года зарегистрированные типы включали вышеперечисленные, а также font
, example
, model
, и haptics
. [1]
Неофициальный тип верхнего уровня, широко используемый: chemical
. [9] [10] [11]
Подтипы
[ редактировать ]Подтип обычно состоит из медиа-формата, но он может или должен также содержать другой контент, например префикс дерева, производителя, продукт или суффикс, в соответствии с различными правилами в деревьях регистрации.
Все типы носителей должны быть зарегистрированы с использованием процедур регистрации IANA. Для повышения эффективности и гибкости процесса регистрации типов носителей различные структуры подтипов могут быть зарегистрированы в деревьях регистрации, отличающихся использованием префиксов деревьев. На данный момент созданы следующие деревья: стандартное (без префикса), вендорное ( vnd.
префикс), личное или тщеславное ( prs.
префикс), незарегистрированный ( x.
префикс). Эти деревья регистрации были впервые определены в ноябре 1996 года (устаревший RFC 2048 — в настоящее время RFC 6838). Новые деревья регистрации могут быть созданы IETF Standards Action для внешней регистрации и управления известными постоянными организациями (например, научными обществами).
Дерево стандартов
[ редактировать ]Дерево стандартов не использует префикс дерева. Примеры: text/javascript
, image/png
. [12]
Регистрации в дереве стандартов должны быть либо связаны со спецификациями IETF, одобренными непосредственно IESG, либо зарегистрированы признанной IANA организацией, связанной со стандартами.
Дерево торговцев
[ редактировать ]Дерево поставщиков включает типы носителей, связанные с общедоступными продуктами. Он использует vnd.
префикс дерева. Примеры: application/vnd.ms-excel
, application/vnd.oasis.opendocument.text
.
Термины «поставщик» и «производитель» считаются эквивалентными в контексте. Отраслевые консорциумы, а также некоммерческие организации могут регистрировать типы носителей в дереве поставщиков. Регистрацию в дереве поставщиков может создать любой, кому необходимо обмениваться файлами, связанными с каким-либо программным продуктом или набором продуктов. Однако регистрация принадлежит поставщику или организации, производящей программное обеспечение, использующее регистрируемый тип, и этот поставщик или организация могут в любое время заявить о своем праве на регистрацию, сделанную третьей стороной.
Личное или тщеславное дерево
[ редактировать ]Личное или тщеславное дерево включает типы мультимедиа, связанные с непублично доступными продуктами или экспериментальными типами мультимедиа. Он использует prs.
префикс дерева. Примеры: audio/prs.sid
, image/prs.btif
.
Незарегистрированное дерево
[ редактировать ]Незарегистрированное дерево включает типы носителей, предназначенные исключительно для использования в частных средах и только при активном согласии обменивающихся ими сторон. Он использует x.
префикс дерева. Примеры: application/x.foo
, video/x.bar
. Типы носителей в этом дереве зарегистрировать невозможно.
Первоначально этот тип был определен в RFC 1590 (опубликован в сентябре 1993 г.) с использованием x-
или X-
префикс. RFC 2048 (опубликованный в ноябре 1996 г.) представил x.
префикс, но не рекомендуется использовать незарегистрированное дерево, поскольку теперь доступны новые личные деревья и деревья поставщиков с упрощенными требованиями к регистрации. Текущий RFC 6838 (опубликованный в январе 2013 г.) содержит ту же рекомендацию, но подтипы с префиксом x-
или X-
больше не считаются членами этого дерева.
Широко распространенные типы носителей (с подтипом с префиксом x-
или X-
) без регистрации, следует, если возможно, перерегистрировать с соответствующим подтипом префикса. Если это невозможно, тип носителя может быть зарегистрирован в дереве стандартов после утверждения как рецензентом типов носителей, так и IESG, с его подтипом без префикса. application/x-www-form-urlencoded
является примером широко распространенного типа, который в конечном итоге был зарегистрирован в x-
префикс. [13]
Суффикс
[ редактировать ]Суффикс — это дополнение к определению типа носителя, позволяющее дополнительно указать базовую структуру этого типа носителя, что позволяет выполнять общую обработку на основе этой структуры и независимо от конкретной семантики конкретного типа. Типы носителей, использующие именованный структурированный синтаксис, должны использовать соответствующий зарегистрированный IANA. "+"suffix
для этого структурированного синтаксиса при их регистрации. Незарегистрированные суффиксы использовать нельзя (с января 2013 г.). Процедуры регистрации структурированных синтаксических суффиксов определены в RFC 6838. [12]
Суффикс +xml определен с января 2001 года (RFC 3023). [14] ), и был формально включен в исходное содержимое реестра структурированных синтаксических суффиксов вместе с +json
, +ber
, +der
, +fastinfoset
, +wbxml
, и +zip
в январе 2013 г. (RFC 6839). Последующие дополнения включают в себя +gzip
, +cbor
, +json-seq
, и +cbor-seq
. [15]
Общие примеры
[ редактировать ]Из реестра IANA: [1]
application/json
application/ld+json
( JSON-LD )application/msword
(.doc)application/pdf
application/sql
application/vnd.api+json
application/vnd.microsoft.portable-executable
(.efi, .exe, .dll)application/vnd.ms-excel
(.xls)application/vnd.ms-powerpoint
(.ppt)application/vnd.oasis.opendocument.text
(.odt)application/vnd.openxmlformats-officedocument.presentationml.presentation
(.pptx)application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
(.xlsx)application/vnd.openxmlformats-officedocument.wordprocessingml.document
(.docx)application/x-www-form-urlencoded
application/xml
application/zip
application/zstd
(.zst)audio/mpeg
audio/ogg
image/avif
image/jpeg
(.jpg, .jpeg, .jfif, .pjpeg, .pjp) [16]image/png
image/svg+xml
(.svg)image/tiff
(.tif)model/obj
(.obj)multipart/form-data
text/plain
text/css
text/csv
text/html
text/javascript
(.js)text/xml
Почтовая шапка
[ редактировать ]Mailcap (происходит от фразы «почтовые возможности») — это тип метафайла, используемый для настройки того, как приложения, поддерживающие MIME, такие как почтовые клиенты и веб-браузеры, отображают файлы различных типов MIME. Формат mailcap определен в RFC 1524 «Механизм настройки агента пользователя для информации о формате мультимедийной почты», но не определен как стандарт Интернета. Он поддерживается большинством систем Unix.
Строки могут быть комментариями, начинающимися с символа #, или mime-типом, за которым следует описание того, как обращаться с этим mime-типом.
mime.types
[ редактировать ]Связанный файл — это файл mime.types , который связывает расширения имени файла с типом MIME . Если тип MIME установлен правильно, в этом нет необходимости, но типы MIME могут быть установлены неправильно или присвоены общий тип, например application/octet-stream
, а mime.types позволяет в таких случаях использовать расширение. Аналогично, поскольку многие файловые системы не хранят информацию о типе MIME, а вместо этого полагаются на расширение имени файла, файл mime.types часто используется веб-серверами для определения типа MIME.
При просмотре файла эти два действия работают вместе следующим образом: mime.types
связывает расширение с типом MIME, а mailcap
связывает тип MIME с программой.
В системах типа UNIX файл mime.types обычно находится по адресу /etc/mime.types
и/или $HOME/.mime.types
и формат таков, что каждая строка представляет собой список типов MIME, разделенных пробелами, за которым следует ноль или более расширений. Например, тип HTML может быть связан с расширениями .htm
и .html
по следующей строке:
text/html htm html
Использование Netscape
[ редактировать ]В этом разделе отсутствует информация о Netscape. ( ноябрь 2019 г. ) |
Файл mime.types относится к Netscape , где использовался другой формат; [17] он использовал пары ключ-значение и список расширений, разделенных запятыми, а также стандартный заголовок, состоящий из определенного комментария, который идентифицирует файл как файл mime.types, как показано ниже:
#--Netscape Communications Corporation MIME Information # Do not delete the above line. It is used to identify the file type. type=text/html exts=htm,html
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Jump up to: а б с д и «Типы СМИ» . ИАНА . ИАНА . 4 июня 2018 года . Проверено 5 июня 2018 г.
В [RFC2046] указано, что типы носителей (ранее известные как типы MIME) и подтипы носителей будут назначаться и перечисляться IANA.
- ^ Jump up to: а б с Филдинг, Р.; Ноттингем, М.; Решке, Дж. (2022). «Тип носителя» . HTTP-семантика . сек. 8.3.1. дои : 10.17487/rfc9110 . ISSN 2070-1721 . СТД 97. RFC 9110 .
HTTP использует типы мультимедиа [RFC2046] в полях заголовка Content-Type (раздел 8.3) и Accept (раздел 12.5.1), чтобы обеспечить открытую и расширяемую типизацию данных и согласование типов.
- ^ Jump up to: а б «4.3. Типы атрибутов» . Модуляризация XHTML 1.1 — второе издание . W3C . 29 июля 2010 г.
ContentType: тип носителя согласно [RFC2045].
- ^ Jump up to: а б Хемсли, Гордон П. «4.1. Представление типа MIME» . Стандарт MIME-анализа . ЧТОРГ .
В стандартах рекомендуется последовательно использовать термин MIME-тип, чтобы избежать путаницы с использованием медиа-типа , как описано в разделе Медиа-запросы .
- ^ Jump up to: а б с "shared-mime-info-spec" . сайт freedesktop.org . 03.09.2023.
- ^ Jump up to: а б с Фрид, Н.; Боренштейн, Н. (ноябрь 1996 г.). «Многоцелевые расширения почты Интернета (MIME), часть первая: формат тел интернет-сообщений» . Рабочая группа по интернет-инжинирингу . Проверено 15 июля 2015 г.
- ^ Нильсен, Хенрик; Филдинг, Рой Т.; Бернерс-Ли, Тим (май 1996 г.). «Протокол передачи гипертекста — HTTP/1.0» . Проверено 2 февраля 2017 г.
- ^ «Спецификация HTML 4.01» . 24 декабря 1999 года . Проверено 2 февраля 2017 г.
- ^ Дэниел Лейдерт, Эгон Уиллигхаген (2007). «Проект химических мимических данных» . Архивировано из оригинала 8 октября 2016 г. Проверено 28 апреля 2016 г.
- ^ «Домашняя страница химического MIME» . 22 декабря 1998 года . Проверено 11 мая 2019 г.
- ^ С. Рзепа, Генри; Мюррей-Раст, Питер; Дж. Уитакер, Бенджамин (14 августа 1998 г.). «Применение интернет-стандартов химических многоцелевых расширений Интернет-почты (Chemical MIME) к электронной почте и обмену информацией во Всемирной паутине». Журнал химической информации и моделирования . 38 (6). Американское химическое общество: 976–982. дои : 10.1021/ci9803233 .
- ^ Jump up to: а б Фрид, Н. (январь 2013 г.). «Спецификации типов носителей и процедуры регистрации» . Страницы запроса комментариев IETF (RFC) — тест . RFC6838. Целевая группа инженеров Интернета (IETF). ISSN 2070-1721 . Проверено 15 июля 2015 г.
- ^ "application/x-www-form-urlencoded (зарегистрировано 14 мая 2014 г., обновлено 14 мая 2014 г., обновлено 14 июля 2020 г.)" .
- ^ Кон, Дэн (январь 2001 г.). «Типы XML-медиа» . www.tools.ietf.org . Проверено 05 марта 2021 г.
- ^ «Структурированный реестр синтаксических суффиксов» (XML) . ИАНА. 20 июля 2012 г. Проверено 08.11.2019 .
- ^ «Типы MIME (типы мультимедиа IANA) — HTTP | MDN» . 18 декабря 2023 г.
- ^ ВЕБ-МАСТЕРЫ: типы пантомимы . Архивировано 7 декабря 2000 г. в archive.today , Джон Макэналли, четверг, 22 января 1998 г., 15:29:29 -0600 (CST).