1393

在处理 PDF 时,我遇到过 MIME 类型application/pdfapplication/x-pdf

这两种类型之间有区别吗?如果有,那是什么?一个比另一个更受欢迎吗?

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

4

3 回答 3

1829

标准媒体类型(以前称为 MIME 类型)是application/pdf. 分配在RFC 3778 中定义,应用程序/pdf 媒体类型,引用自媒体类型注册表

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

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

于 2008-11-23T07:22:44.950 回答
162

这是RFC 2045 - Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Body中定义的约定。

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

  2. 新标准值应按照RFC 2048中的说明向 IANA 注册。

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

如果出于任何原因要使用其他顶级类型,则必须为其命名以“X-”开头,以表明其非标准状态并避免与未来的正式名称发生潜在冲突。

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

因此可以公平地猜测,在 IANA 定义“application/foo”之前使用了“application/x-foo”。不知道 IANA 令牌分配的人可能仍会使用它。

正如 Chris Hanson 所说,MIME 类型由 IANA 控制。这在RFC 2048 - Multipurpose Internet Mail Extensions (MIME) Part 4: Registration Procedures中有详细说明。根据IANA 引用的RFC 3778作为“应用程序/pdf”的定义,

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

“application/pdf”类型已经存在了十多年。所以在我看来,在新应用程序中使用“application/x-pdf”的地方,这个决定可能不是经过深思熟虑的。

于 2010-12-29T12:13:22.453 回答
30

来自维基百科媒体类型,

媒体类型由类型、子类型和可选参数组成。例如,一个 HTML 文件可能被指定为 text/html;字符集=UTF-8。

媒体类型由顶级类型名称和子类型名称组成,并进一步构造成所谓的“树”。

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

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

所有媒体类型都应使用 IANA 注册程序进行注册。当前创建了以下树:standard, vendor,personalvanity, 未注册x.

标准:

标准树中的媒体类型不使用任何树方面(前缀)。

type / media type name [+suffix]

示例:“应用程序/xhtml+xml”、“图像/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。树:

“x”。tree 可用于专门用于私人、本地环境的媒体类型,并且只有在交换双方的积极同意下才能使用。无法注册此树中的类型。

根据 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 6838x-中所述的过时和未注册的媒体类型。

于 2015-12-14T08:31:27.367 回答