Правильный тип носителя 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.