Правильный тип мультимедиа для файлов PDF

1285

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

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

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

friedo
источник

Ответы:

1705

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

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

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

Крис Хансон
источник
6
Обновление 2020: На данный момент, application/pdfтип должен использоваться - если вам не нужно быть совместимым с действительно старым программным обеспечением, не используйте x-pdf...
janniks
156

Это соглашение определено в 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» не использовалось в новых приложениях, решение, возможно, не было преднамеренным.

GargantuChet
источник
28

Из Википедии Тип СМИ,

Тип мультимедиа состоит из типа, подтипа и необязательных параметров. Например, файл 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 года) редко, если вообще необходимо, использовать незарегистрированные экспериментальные типы, а также как «x-», так и «x». формы не рекомендуется . В предыдущих версиях RFC - RFC 1590 и RFC 1521 указывалось, что использование нотации «x-» для имени подтипа может использоваться для незарегистрированных и частных подтипов, но эта рекомендация была отменена в ноябре 1996 года.

type / x. media type name [+suffix]

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

Счастливчик
источник
3
@TNguyen: без вреда. :) Я думаю, что хорошо иметь другие варианты ответов, чтобы они давали дополнительную информацию тому, кто ищет тему. Кроме того, он процитировал некоторую дополнительную информацию, хотя по сравнению с другими ответами.
Sunil