Правильный тип носителя MIME для файлов PDF
При работе с PDF файлами я встречался между типами MIME application/pdf
и application/x-pdf
среди других.
Есть ли разница между этими двумя типами, и если да, то что это? Один из них предпочтительнее другого?
Я работаю над веб-приложением, которое должно доставлять огромное количество PDF файлов, и я хочу сделать это правильно, если он есть.
Ответы
Ответ 1
Стандартный тип MIME application/pdf
. Назначение определено в RFC 3778, Тип приложения /PDF Media, на который ссылается Реестр MIME Media Types.
Типы MIME контролируются органом по стандартизации, Администрирование номеров в Интернете (IANA). Это та же организация, которая управляет корневыми серверами имен и IP-адресом.
Использование x-pdf
предшествует стандартизации типа MIME для PDF. MIME-типы в пространстве имен x-
считаются экспериментальными, так же как и те, которые находятся в пространстве имен vnd.
, считаются специфичными для поставщика. x-pdf
может использоваться для совместимости со старым программным обеспечением.
Ответ 2
Это соглашение, определенное в RFC 2045 - Многоцелевые расширения электронной почты Интернета (MIME) Часть первая: формат интернет-сообщений.
-
Частные значения подтипа (начиная с "X-" ) могут быть определены в двухстороннем порядке между двумя сотрудничающими агентами без вне регистрации или стандартизации. Такие значения не могут быть зарегистрированы или стандартизованы.
-
Новые стандартные значения должны быть зарегистрированы в IANA, как описано в RFC 2048.
Аналогичное ограничение применяется к типу верхнего уровня. Из того же источника,
Если по какой-либо причине должен использоваться другой тип верхнего уровня, он должен быть с именем, начинающимся с "X-" , чтобы указать его нестандартный статус и избежать возможного конфликта с будущим официальным именем.
(Обратите внимание, что на RFC 2045 "[m] atching типа и подтипа носителя ВСЕГДА не учитывается регистр", поэтому нет никакой разницы между интерпретацией "X-" и "x -".)
Поэтому справедливо предположить, что "application/x-foo" использовалось до того, как IANA определила "application/foo". И это все еще может быть использовано людьми, которые не знают о назначении токена IANA.
Как сказал Крис Хансон, MIME-типы контролируются IANA. Это подробно описано в RFC 2048 - Многоцелевые расширения электронной почты Интернета (MIME) Часть четвертая: Процедуры регистрации. Согласно RFC 3778, который цитируемый IANA в качестве определения для "application/pdf",
Тип приложения /pdf был впервые зарегистрирован в 1993 году Паулем Линднером для использования протоколом gopher; регистрация была впоследствии обновлена в 1994 году Стивом Циллесом.
Тип "application/pdf" существует уже более десяти лет. Поэтому мне кажется, что везде, где "приложение/x-pdf" использовалось в новых приложениях, решение могло быть не преднамеренным.
Ответ 3
Материал из Википедии Тип носителя,
Тип носителя состоит из типа, подтипа и необязательного параметры. Например, HTML файл может быть обозначен как text/html; кодировка = UTF-8.
Тип носителя состоит из имени типа и типа подтипа верхнего уровня, который далее структурированные в так называемые "деревья".
top-level type name / subtype name [ ; parameters ]
top-level type name / [ tree. ] subtype name [ +suffix ] [ ; parameters ]
Все типы носителей должны регистрироваться с помощью процедур регистрации IANA. В настоящее время создаются следующие деревья: standard
, vendor
, personal
или vanity
, незарегистрированные x.
Стандарт:
Типы носителей в дереве стандартов не используют никакой фасет дерева (префикс).
type / media type name [+suffix]
Примеры: "application/xhtml + xml", "image/png"
Производитель:
Дерево поставщиков используется для типов носителей, связанных с общедоступными продукты. Он использует фасет vnd.
.
type / vnd. media type name [+suffix] - used in the case of well-known producer
type / vnd. producer name followed by media type name [+suffix] - producer name must be approved by IANA
type / vnd. producer name followed by product name [+suffix] - producer name must be approved by IANA
Персональное дерево или дерево тщеславия:
Персональное или тщеславие включает в себя типы носителей, созданные экспериментально или как часть продуктов, которые не распространяются коммерчески. Оно использует prs.
фасет.
type / prs. media type name [+suffix]
Незарегистрированный x. дерево:
"x". дерево может использоваться для типов носителей, предназначенных исключительно для использования в частных, локальных условиях и только при активном согласии стороны обменивают их. Типы в этом дереве не могут быть зарегистрированы.
Согласно предыдущей версии RFC 6838 - устаревший RFC 2048 (опубликовано в ноябре 1996 года) , он должен редко, если вообще когда-либо, быть необходимым использовать незарегистрированные экспериментальные типы, и как таковое использование как "х-", и "х". формы не рекомендуется. Предыдущие версии этого RFC-RFC 1590 и RFC 1521 заявили, что использование обозначения "x-" для имя подтипа может использоваться для незарегистрированных и частных подтипов, но эта рекомендация была устаревшей в ноябре 1996 года.
type / x. media type name [+suffix]
Итак, ясно, что тип MIME стандартного типа application/pdf
является подходящим для использования, в то время как вам следует избегать использования устаревшего и незарегистрированного типа носителя x-
, как указано в RFC 2048 и RFC 6838.