适用于PDF文件的MIME媒体types

在使用PDF时,我已经运行了MIMEtypesapplication/pdfapplication/x-pdf等等。

这两种types有区别吗?如果是这样的话? 一个比另一个更受欢迎吗?

我正在开发一个Web应用程序,它必须提供大量的PDF文件,而且我希望以正确的方式进行操作(如果有的话)。

标准的MIMEtypes是application/pdf 。 该分配在RFC 3778中定义,应用程序/ pdf媒体types ,从MIME媒体typesregistry引用。

互联网号码分配机构 (IANA) 负责pipe理 MIMEtypes。 这是pipe理根名称服务器和IP地址空间的组织。

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

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

  1. 私人[子types]值(以“X-”开头)可以在两个合作代理之间双边定义,无需外部注册或标准化。 这些值不能被注册或标准化。

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

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

如果出于某种原因要使用另一个顶级types,则必须给它一个以“X-”开头的名称来表示其非标准状态,并避免与未来正式名称的潜在冲突。

(请注意,根据RFC 2045,“媒体types和子types的处理总是不区分大小写”,所以“X”和“x”的解释没有区别)。

因此,在IANA定义“application / foo”之前,猜测“application / x-foo”被使用是公平的。 而且还可能被不知道IANA令牌分配的人使用。

正如Chris Hanson所说,MIMEtypes是由IANA控制的。 这在RFC 2048 – 多用途Internet邮件扩展(MIME)第四部分:注册过程中有详细介绍 。 根据IANA引用的 RFC 3778作为“application / pdf”的定义,

应用程序/ pdf媒体types首先由Paul Lindner于1993年注册,供gopher协议使用; Steve Zilles于1994年更新了注册。

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

从维基百科媒体types来看,

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

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

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

所有媒体types都应使用IANA注册程序进行注册。 目前创build了以下树: standardvendorpersonalvanity ,未注册x.

标准:

标准树中的媒体types不使用任何树构面(前缀)。

 type / media type name [+suffix] 

例如:“application / xhtml + xml”,“image / png”

卖方:

供应商树用于与公共可用产品关联的媒体types。 它使用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 

个人或虚荣树:

个人或虚荣树包括实验性创build的媒体types,或者作为未在商业上分发的产品的一部分。 它使用prs. 面。

 type / prs. media type name [+suffix] 

未注册x。 树:

“x”。 树可以用于专门用于私人和当地环境的媒体types,并且只有在双方交换它们的活跃协议的情况下。 此树中的types不能被注册。

根据以前版本的RFC 6838(废弃的RFC 2048(1996年11月发布)) ,如果使用未注册的实验types,则应该很less使用“x-”和“x”。 forms是不鼓励的 。 该RFC的RFC 1590和RFC 1521的先前版本指出,对于子types名称使用“x-”符号可以用于未注册和私有子types,但是该build议在1996年11月已经过时。

 type / x. media type name [+suffix] 

因此,清楚的是标准types的MIMEtypesapplication/pdf是适合使用的,而您应该避免使用RFC 2048和RFC 6838中陈述的过时和未注册的x-媒体types。