stringtranslate.com

Тип носителя

В области информационных и коммуникационных технологий тип носителя , [1] [2] тип контента [2] [3] или тип MIME [1] [4] [5] — это двухкомпонентный идентификатор для форматов файлов и форматов контента . Их назначение сопоставимо с расширениями имен файлов и унифицированными идентификаторами типов , поскольку они идентифицируют предполагаемый формат данных. Они в основном используются технологиями, лежащими в основе Интернета , а также используются в настольных системах Linux.

Internet Assigned Numbers Authority (IANA) является официальным органом по стандартизации и публикации этих классификаций. Типы носителей были первоначально определены в Request for Comments RFC  2045 (MIME) Part One: Format of Internet Message Bodies (ноябрь 1996 г.) в ноябре 1996 г. как часть спецификации MIME (Multipurpose Internet Mail Extensions) для обозначения типа содержимого и вложений сообщений электронной почты ; [6] отсюда и первоначальное название, тип MIME . Типы носителей также используются другими интернет-протоколами, такими как HTTP , [7] форматами файлов документов, такими как HTML , [8] и спецификациями XDG , реализованными в средах рабочего стола Linux , [5] для аналогичных целей.

Терминология

Различные интернет-стандарты или органы веб-стандартизации различаются по предпочтительному термину для этого типа идентификатора.

IANA и IETF используют термин «тип носителя» и считают термин «тип MIME» устаревшим, [ 1] поскольку типы носителя стали использоваться в контекстах, не связанных с электронной почтой, например, HTTP. Напротив, WHATWG продолжает использовать термин «тип MIME» и не рекомендует использовать термин «тип носителя» как двусмысленный, поскольку он используется с другим значением в связи с функцией CSS . [4] @media

Заголовок ответа HTTP для предоставления типа носителя — Content-Type. [2] W3C использовал в качестве имени типа данных XML для типа носителя. [3] Спецификации XDG, реализованные в средах рабочего стола Linux, продолжают использовать термин «тип MIME». [5]ContentType

Структура

Тип носителя состоит из типа и подтипа , который далее структурирован в дерево . Тип носителя может опционально определять суффикс и параметры :

mime-type =  тип "/"  [ дерево "." ]  подтип [ "+"  суффикс ] *  [ ";"  параметр ];

Например, файл 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] В контексте сред рабочего стола Linux используются неофициальные типы верхнего уровня inode( иноды , отличные от обычных файлов, такие как каталоги файловой системы , файлы устройств или символические ссылки ), [12] x-content ( съемные носители , такие как x-content/image-dcfцифровые камеры DCF ), [13] package ( пакеты менеджеров пакетов ) [14] и x-office(общие категории документов офисного программного обеспечения ) [14] .

Подтипы

Подтип обычно состоит из формата носителя, но он может или должен также содержать другой контент, такой как префикс дерева, производитель, продукт или суффикс, в соответствии с различными правилами в деревьях регистрации.

Все типы носителей должны быть зарегистрированы с использованием процедур регистрации IANA. Для эффективности и гибкости процесса регистрации типов носителей в деревьях регистрации могут быть зарегистрированы различные структуры подтипов, которые различаются использованием префиксов деревьев. В настоящее время созданы следующие деревья: стандартные (без префикса), поставщик ( vnd.префикс), личные или тщеславные ( prs.префикс), незарегистрированные ( x.префикс). Эти деревья регистрации были впервые определены в ноябре 1996 года (устаревший RFC 2048 - в настоящее время RFC 6838). Новые деревья регистрации могут быть созданы IETF Standards Action для внешней регистрации и управления известными постоянными организациями (например, научными обществами).

Дерево стандартов

Дерево стандартов не использует никаких префиксов дерева. Примерами являются text/javascript, image/png. [15]

Регистрации в дереве стандартов должны быть либо связаны со спецификациями IETF, утвержденными непосредственно IESG, либо зарегистрированы признанной IANA организацией, связанной со стандартами.

Дерево поставщиков

Дерево поставщиков включает типы носителей, связанные с общедоступными продуктами. Оно использует vnd.префикс tree. Примеры: application/vnd.ms-excel, application/vnd.oasis.opendocument.text.

Термины «поставщик» и «производитель» считаются эквивалентными в контексте. Отраслевые консорциумы, а также некоммерческие организации могут регистрировать типы носителей в дереве поставщиков. Регистрация в дереве поставщиков может быть создана любым человеком, которому необходимо обмениваться файлами, связанными с каким-либо программным продуктом или набором продуктов. Однако регистрация принадлежит поставщику или организации, производящей программное обеспечение, которое использует регистрируемый тип, и этот поставщик или организация могут в любое время принять решение о признании права собственности на регистрацию, выполненную третьей стороной.

Личное или тщеславное дерево

Персональное или тщеславное дерево включает типы носителей, связанные с непублично доступными продуктами или экспериментальными типами носителей. Оно использует prs.префикс tree. Примерами являются audio/prs.sid, image/prs.btif.

Незарегистрированное дерево

Незарегистрированное дерево включает типы носителей, предназначенные исключительно для использования в частных средах и только с активного соглашения сторон, обменивающихся ими. Оно использует x.префикс дерева. Примерами являются application/x.foo, video/x.bar. Типы носителей в этом дереве не могут быть зарегистрированы.

Этот тип был первоначально определен в RFC 1590 (опубликован в сентябре 1993 года) с использованием префикса x-or X-. RFC 2048 (опубликован в ноябре 1996 года) ввел x.префикс, но не рекомендовал использовать незарегистрированное дерево, поскольку теперь доступны новые персональные и вендоры с ослабленными требованиями к регистрации. Текущий RFC 6838 (опубликован в январе 2013 года) сохраняет ту же рекомендацию, но подтипы с префиксом x-or X-больше не считаются членами этого дерева.

Типы носителей, которые были широко распространены (с подтипом с префиксом x-или X-) без регистрации, должны быть, если возможно, перерегистрированы с соответствующим префиксным подтипом. Если это невозможно, тип носителя может быть зарегистрирован в дереве стандартов с его подтипом без префикса после одобрения как рецензентом типов носителей, так и IESG. application/x-www-form-urlencodedявляется примером широко распространенного типа, который в конечном итоге был зарегистрирован с x-префиксом. [16]

Суффикс

Суффикс — это дополнение к определению типа носителя для дополнительного указания базовой структуры этого типа носителя, что позволяет выполнять общую обработку на основе этой структуры и независимо от конкретной семантики конкретного типа. Типы носителей, которые используют именованный структурированный синтаксис, должны использовать соответствующий зарегистрированный IANA "+"suffixдля этого структурированного синтаксиса при регистрации. Незарегистрированные суффиксы не должны использоваться (с января 2013 г.). Процедуры регистрации суффиксов структурированного синтаксиса определены в RFC 6838. [15]

Суффикс +xml был определен с января 2001 года (RFC 3023 [17] ), и был официально включен в первоначальное содержимое Реестра суффиксов структурированного синтаксиса вместе с +json, +ber, +der, +fastinfoset, +wbxmlи +zipв январе 2013 года (RFC 6839). Последующие дополнения включают +gzip, +cbor, +json-seq, и +cbor-seq. [18]

Распространенные примеры

Из реестра IANA: [1]

Почтовая шапка

Mailcap (происходит от фразы "mail capacity") — это тип метафайла, используемый для настройки того, как приложения с поддержкой MIME, такие как почтовые клиенты и веб-браузеры, отображают файлы различных типов MIME. Формат mailcap определен в RFC 1524 "A User Agent Configuration Mechanism for Multimedia Mail Format Information", но не определен как стандарт Интернета. Он поддерживается большинством систем Unix.

Строки могут быть комментариями, начинающимися с символа #, или MIME-типом, за которым следует инструкция по обработке этого MIME-типа.

mime.типы

Связанный файл — это файл mime.types , который связывает расширения имен файлов с типом MIME . Если тип MIME установлен правильно, это не нужно, но типы MIME могут быть установлены неправильно или установлены на общий тип, такой как application/octet-stream, и mime.types позволяет в этих случаях вернуться к расширению. Аналогично, поскольку многие файловые системы не хранят информацию о типе MIME, а вместо этого полагаются на расширение имени файла, файл mime.types часто используется веб-серверами для определения типа MIME.

При просмотре файла эти два параметра работают вместе следующим образом: mime.typesсвязывают расширение с типом MIME, а mailcapтип MIME — с программой.

В системах типа UNIX файл mime.types обычно находится в и/или , а формат заключается в том, что каждая строка представляет собой список типов MIME, разделенных пробелами, за которыми следует ноль или более расширений. Например, тип HTML может быть связан с расширениями и следующей строкой:/etc/mime.types$HOME/.mime.types.htm.html

текст/html htm html

использование Netscape

Файл mime.types появился в Netscape , где использовался другой формат; [20] он использовал пары «ключ-значение» и список расширений, разделенных запятыми, вместе со стандартным заголовком, состоящим из специального комментария, который идентифицирует файл как файл mime.types, следующим образом:

#--Информация MIME корпорации Netscape Communications# Не удаляйте указанную выше строку. Она используется для определения типа файла.тип=текст/html расширений=htm,html

Смотрите также

Ссылки

  1. ^ abcde "Типы носителей". IANA . IANA . 4 июня 2018 г. Получено 5 июня 2018 г. [RFC2046] указывает, что типы носителей (ранее известные как типы MIME) и подтипы носителей будут назначаться и перечисляться IANA.
  2. ^ abc Fielding, R.; Nottingham, M.; Reschke, J. (2022). "Тип носителя". HTTP Semantics. sec. 8.3.1. doi : 10.17487/rfc9110 . ISSN  2070-1721. STD 97. RFC 9110. HTTP использует типы носителя [RFC2046] в полях заголовка Content-Type (раздел 8.3) и Accept (раздел 12.5.1) для обеспечения открытой и расширяемой типизации данных и согласования типов.
  3. ^ ab "4.3. Типы атрибутов". Модуляризация XHTML 1.1 - Второе издание . W3C . 2010-07-29. ContentType: Тип носителя, согласно [RFC2045].
  4. ^ ab Hemsley, Gordon P. "4.1. Представление типа MIME". Стандарт анализа MIME . WHATWG . Стандартам рекомендуется последовательно использовать термин тип MIME, чтобы избежать путаницы с использованием типа носителя, как описано в Media Queries .
  5. ^ abc "shared-mime-info-spec". freedesktop.org . 2023-09-03.
  6. ^ abc Freed, N.; Borenstein, N. (ноябрь 1996 г.). «Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies» (Многоцелевые расширения электронной почты Интернета (MIME) Часть первая: Формат тел сообщений Интернета)». Internet Engineering Task Force ( Целевая группа по инжинирингу Интернета) . Получено 15 июля 2015 г.
  7. ^ Нильсен, Хенрик; Филдинг, Рой Т.; Бернерс-Ли, Тим (май 1996 г.). "Протокол передачи гипертекста — HTTP/1.0" . Получено 2 февраля 2017 г.
  8. ^ "HTML 4.01 Specification". 24 декабря 1999 г. Получено 2 февраля 2017 г.
  9. ^ Дэниел Лейдерт, Эгон Виллигхаген (2007). "Проект химических-мимических-данных". Архивировано из оригинала 2016-10-08 . Получено 2016-04-28 .
  10. ^ "Chemical MIME Home page". 22 декабря 1998 г. Получено 11 мая 2019 г.
  11. ^ S. Rzepa, Henry; Murray-Rust, Peter; J. Whitaker, Benjamin (14 августа 1998 г.). «Применение химических многоцелевых расширений интернет-почты (химических MIME) в интернет-стандартах для электронной почты и обмена информацией во всемирной паутине». Журнал химической информации и моделирования . 38 (6). Американское химическое общество: 976–982. doi :10.1021/ci9803233.
  12. ^ "2.13. Необычные файлы". Спецификация общей информации MIME . freedesktop.org .
  13. ^ "2.14 Типы содержимого для томов". Спецификация общей информации MIME . freedesktop.org .
  14. ^ ab "Таблица 10: Стандартные значки типа MIME". Спецификация именования значков . freedesktop.org .
  15. ^ ab Freed, N. (январь 2013 г.). "Спецификации типов носителей и процедуры регистрации". Страницы запросов на комментарии (RFC) IETF - Тест . RFC6838. Internet Engineering Task Force (IETF). ISSN  2070-1721 . Получено 15 июля 2015 г.
  16. ^ "application/x-www-form-urlencoded (зарегистрировано 14.05.2014, обновлено 14.05.2014, обновлено 14.07.2020)".
  17. ^ Кон, Дэн (январь 2001 г.). "XML Media Types". tools.ietf.org . Получено 05.03.2021 .
  18. ^ "Реестр структурированных синтаксических суффиксов" (XML) . IANA. 2012-07-20 . Получено 08.11.2019 .
  19. ^ "Типы MIME (типы носителей IANA) - HTTP | MDN". 18 декабря 2023 г.
  20. ^ ВЕБМАСТЕРЫ: типы mime Архивировано 2000-12-07 в archive.today , Джон МакЭнелли, Чт, 22 Янв 1998 15:29:29 -0600 (CST)

Внешние ссылки