PDF文件的正确MIME媒体类型


1283

使用PDF时,我遇到了MIME类型application/pdfapplication/x-pdf其他。

这两种类型之间有区别吗?如果是,那是什么?是一个比另一个更好的选择吗?

我正在开发一个Web应用程序,该应用程序必须交付大量PDF,如果有的话,我想以正确的方式进行操作。

Answers:


1705

标准MIME类型为application/pdf。分配是在MIME 3 Types注册表中引用的RFC 3778“ application / pdf Media Type”中定义的。

MIME类型由标准机构Internet编号分配机构(IANA)控制。这是管理根名称服务器和IP地址空间的组织。

使用x-pdfpre早于PDF的MIME类型的标准化。x-命名空间中的MIME类型被视为试验性的,就像命名空间中的MIME类型被视为特定于vnd.供应商的一样。x-pdf可能用于与旧软件兼容。


6
2020更新:在这一点上,application/pdf应该使用该类型-除非您需要与真正的旧软件兼容,否则请不要使用x-pdf...
janniks

156

这是RFC 2045-多功能Internet邮件扩展(MIME)第一部分:Internet邮件正文的格式中定义的约定。

  1. 可以在两个合作代理之间双向定义私有[subtype]值(以“ X-”开头),而无需外部注册或标准化。这些值无法注册或标准化。

  2. RFC 2048中所述,应向IANA注册新的标准值。

类似的限制适用于顶级类型。来自同一来源

如果出于任何原因要使用其他顶级类型,则必须给它一个以“ X-”开头的名称,以表示其非标准状态,并避免与将来的正式名称冲突。

(请注意,根据RFC 2045,“ [m]匹配媒体类型和子类型始终不区分大小写”,因此对“ X-”和“ x-”的解释没有区别。)

因此可以猜测,IANA定义“ application / foo”之前就使用了“ application / x-foo”。而且它仍然可以由不了解IANA令牌分配的人们使用。

正如克里斯·汉森(Chris Hanson)所说,MIME类型由IANA控制。RFC 2048-多功能Internet邮件扩展(MIME)第四部分:注册过程中对此进行了详细说明。根据RFC 3778,这是由IANA引用作为定义“应用/ PDF”,

Paul Lindner于1993年首次注册了application / pdf媒体类型,供gopher协议使用;该注册随后在1994年由Steve Zilles更新。

“ application / pdf”类型已经存在了十多年了。因此在我看来,无论在新应用程序中使用“ application / x-pdf”的地方,该决定都可能不是故意的。


28

在Wikipedia媒体类型中,

媒体类型由类型,子类型和可选参数组成。例如,一个HTML文件可以指定为text / html。charset = UTF-8。

媒体类型由顶级类型名称和子类型名称组成,它们进一步被结构化为所谓的“树”。

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

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

所有媒体类型均应使用IANA注册程序进行注册。目前,创建下列树:standardvendorpersonal或者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

个人树或虚荣树:

Personal或Vanity树包括通过实验创建的媒体类型或作为非商业发行的产品一部分的媒体类型。它使用 prs.方面。

type / prs. media type name [+suffix]

未注册x。树:

“ x”。树只能用于专用于私有本地环境的媒体类型,并且必须在交换它们的各方的积极同意下使用。该树中的类型无法注册。

根据RFC 6838的先前版本-废弃的RFC 2048(于1996年11月发布),很少,甚至永远不必使用未注册的实验类型,因此既要使用“ x-”又要使用“ x”。不鼓励使用表格。该RFC的早期版本-RFC 1590和RFC 1521指出,对于未注册的和私有的子类型,可以对子类型名称使用“ x-”表示法,但是该建议在1996年11月被废弃。

type / x. media type name [+suffix]

因此,很明显,可以使用标准类型MIME类型application/pdf,同时应避免使用RFC 2048RFC 6838中所述的过时且未注册的x-媒体类型。


3
@TNguyen:没害。:)我认为最好有其他版本的答案,以便为搜索该主题的人提供一些其他信息。此外,与其他答案相比,他还引用了一些其他信息。
sunil
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.