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


1283

Працюючи з PDF-файлами, я натрапив на типи MIME application/pdfта application/x-pdfсеред інших.

Чи є різниця між цими двома типами, і якщо так, то що це? Чи один віддає перевагу іншому?

Я працюю над веб-додатком, який повинен доставляти величезну кількість PDF-файлів, і я хочу зробити це правильно, якщо такий є.

Відповіді:


1705

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

Типи MIME контролюються органом по стандартизації, The Internet Assigned Numbers Authority (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] прив'язка типу та підтипу медіа ЗАВЖДИ нечутлива до регістру", тому різниці між інтерпретацією "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" існує вже більше десяти років. Тому мені здається, що де б не використовувався "application / x-pdf" у нових додатках, рішення, можливо, не було навмисним.


28

З типу медіа Вікіпедії,

Тип носія складається з типу, підтипу та необов'язкових параметрів. Як приклад, HTML-файл може бути позначений text / html; charset = 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]

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

Значення "x". дерево може використовуватися для типів засобів масової інформації, призначених виключно для використання в приватних, локальних середовищах і лише за активної згоди сторін, що їх обмінюють. Типи цього дерева неможливо зареєструвати.

Згідно з попередньою версією 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: Без шкоди. :) Я вважаю, що добре мати інші версії відповідей, щоб вони надали додаткову інформацію для того, хто шукає тему. Крім того, він наводив додаткову інформацію, порівнюючи з іншими відповідями.
суніль
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.