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

При работе с PDF-файлами я встречал среди прочих MIME-типы application/pdf и application/x-pdf.

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

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

Как конвертировать HTML в PDF с помощью jsPDF
Как конвертировать HTML в PDF с помощью jsPDF
В этой статье мы рассмотрим, как конвертировать HTML в PDF с помощью jsPDF. Здесь мы узнаем, как конвертировать HTML в PDF с помощью javascript.
Включение UTF-8 в jsPDF с помощью Angular
Включение UTF-8 в jsPDF с помощью Angular
Привет, разработчики, я предполагаю, что вы уже знаете, как экспортировать pdf через jsPDF. Если ответ отрицательный, то вы можете ознакомиться с моей...
1 343
0
889 905
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

Стандартный тип носителя (ранее известный как типы MIME) - application/pdf. Присвоение определяется в RFC 3778, Приложение / тип носителя в формате pdf, на которое ссылается Реестр типов носителей.

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

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

Обновление 2020: На этом этапе следует использовать тип application/pdf - если вам не нужно быть совместимым с действительно старым программным обеспечением, не используйте x-pdf ...
janniks 03.02.2020 13:39

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

  1. Private [subtype] values (starting with "X-") may be defined bilaterally between two cooperating agents without outside registration or standardization. Such values cannot be registered or standardized.

  2. New standard values should be registered with IANA as described in RFC 2048.

Аналогичное ограничение применяется к типу верхнего уровня. Из того же источника,

If another top-level type is to be used for any reason, it must be given a name starting with "X-" to indicate its non-standard status and to avoid a potential conflict with a future official name.

(Обратите внимание, что согласно RFC 2045, «[m] изменение типа и подтипа носителя ВСЕГДА не чувствительно к регистру», поэтому нет никакой разницы между интерпретацией «X-» и «x-».)

Так что справедливо предположить, что «application / x-foo» использовалось до того, как IANA определило «application / foo». И он все еще может использоваться людьми, которые не знают о назначении токенов IANA.

Как сказал Крис Хэнсон, типы MIME контролируются IANA. Это подробно описано в RFC 2048 - Многоцелевые расширения почты Интернета (MIME), часть четвертая: процедуры регистрации. Согласно RFC 3778, который является цитируется IANA как определение для "application / pdf",

The application/pdf media type was first registered in 1993 by Paul Lindner for use by the gopher protocol; the registration was subsequently updated in 1994 by Steve Zilles.

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

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

A media type is composed of a type, a subtype, and optional parameters. As an example, an HTML file might be designated text/html; charset=UTF-8.

Media type consists of top-level type name and sub-type name, which is further structured into so-called "trees".

top-level type name / subtype name [ ; parameters ]

top-level type name / [ tree. ] subtype name [ +suffix ] [ ; parameters ]

Все типы носителей должны быть зарегистрированы с использованием процедур регистрации IANA. В настоящее время созданы следующие деревья: standard, vendor, personal или vanity, незарегистрированный x..

Стандарт:

Media types in the standards tree do not use any tree facet (prefix).

type / media type name [+suffix]

Примеры: «application / xhtml + xml», «image / png».

Продавец:

Vendor tree is used for media types associated with publicly available products. It uses vnd. facet.

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

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

Personal or Vanity tree includes media types created experimentally or as part of products that are not distributed commercially. It uses prs. facet.

type / prs. media type name [+suffix]

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

The "x." tree may be used for media types intended exclusively for use in private, local environments and only with the active agreement of the parties exchanging them. Types in this tree cannot be registered.

According to the previous version of RFC 6838 - obsoleted RFC 2048 (published in November 1996) it should rarely, if ever, be necessary to use unregistered experimental types, and as such use of both "x-" and "x." forms is discouraged. Previous versions of that RFC - RFC 1590 and RFC 1521 stated that the use of "x-" notation for the sub-type name may be used for unregistered and private sub-types, but this recommendation was obsoleted in November 1996.

type / x. media type name [+suffix]

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

Другие вопросы по теме