协慌网

登录 贡献 社区

适用于 PDF 文件的 MIME 媒体类型

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

这两种类型之间是否存在差异,如果是这样,它是什么?一个比另一个更受欢迎吗?

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

答案

标准 MIME 类型是application/pdf 。该分配在RFC 3778 中定义,即应用程序 / pdf 媒体类型 ,从MIME 媒体类型注册表引用。

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

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

这是RFC 2045 中定义的约定- 多用途 Internet 邮件扩展(MIME)第一部分:Internet 邮件实体的格式

  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 - 多用途 Internet 邮件扩展(MIME)第四部分:注册过程中有详细说明 。根据RFC 3778IANA将其引用为 “application / pdf” 的定义,

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

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

来自维基百科媒体类型,

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

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

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

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

应使用 IANA 注册程序注册所有媒体类型。目前创建了以下树: standardvendorpersonalvanity ,未注册的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。树:

“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- media 类型。