Правильный тип мультимедиа для файлов PDF - PullRequest
1185 голосов
/ 23 ноября 2008

При работе с PDF я сталкивался с MIME-типами application/pdf и application/x-pdf и другими.

Есть ли разница между этими двумя типами, и если да, то что это? Один предпочтительнее другого?

Я работаю над веб-приложением, которое должно доставлять огромное количество PDF-файлов, и я хочу сделать это правильно, если оно есть.

Ответы [ 3 ]

1573 голосов
/ 23 ноября 2008

Стандартный тип MIME application/pdf. Назначение определено в RFC 3778, Приложение / pdf Тип носителя , ссылка на который есть в реестре MIME Media Types .

Типы MIME контролируются органом по стандартизации, Органом по присвоению номеров в Интернете (IANA). Это та же организация, которая управляет корневыми серверами имен и пространством IP-адресов.

Использование x-pdf предшествует стандартизации типа MIME для PDF. MIME-типы в пространстве имен x- считаются экспериментальными, так же как и типы в пространстве имен vnd. зависят от поставщика. x-pdf может использоваться для совместимости со старым программным обеспечением.

146 голосов
/ 29 декабря 2010

Это соглашение определено в RFC 2045 - Многоцелевые расширения почты Интернета (MIME), часть первая: формат тел сообщений Интернета .

  1. Приватный [подтип] значения (начинающиеся с "X-") могут быть определены на двусторонней основе между двумя сотрудничающими агентами без вне регистрации или стандартизации. Такие ценности не может быть зарегистрирован или стандартизирован.

  2. Новые стандартные значения должны быть зарегистрированы в 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",

Тип носителя application / pdf был впервые зарегистрирован в 1993 году Полом Линднером для использования в протоколе gopher; впоследствии регистрация была обновлена ​​в 1994 году Стивом Зиллесом.

Тип "application / pdf" существует уже более десяти лет. Поэтому мне кажется, что где бы «приложение / x-pdf» не использовалось в новых приложениях, решение могло быть не преднамеренным.

25 голосов
/ 14 декабря 2015

Из Википедии Тип носителя,

Тип мультимедиа состоит из типа, подтипа и необязательного параметры. Например, файл 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's name followed by media type name [+suffix] - producer's name must be approved by IANA

type / vnd. producer's name followed by product's name [+suffix] - producer's name must be approved by IANA

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

Личное дерево или Дерево тщеславия включает типы носителей, созданные экспериментально или как часть продуктов, которые не распространяются на коммерческой основе. Оно использует prs. фасет.

type / prs. media type name [+suffix]

Незарегистрированный х. дерево:

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

Согласно предыдущей версии RFC 6838 - устаревший RFC 2048 (опубликовано в ноябре 1996 г.) редко, если вообще необходимо использовать незарегистрированные экспериментальные типы и как таковые использовать оба "х-" и "х." формы не рекомендуется . Предыдущие версии этого RFC - RFC 1590 и RFC 1521 заявили, что использование «х-» обозначения для имя подтипа может использоваться для незарегистрированных и частных подтипов, но эта рекомендация была отменена в ноябре 1996 года.

type / x. media type name [+suffix]

Итак, ясно, что стандартный тип MIME application/pdf является подходящим для использования, в то время как вам следует избегать использования устаревшего и незарегистрированного типа x-, как указано в RFC 2048 и RFC 6838 .

...