PDFファイルの適切なMIMEメディアタイプ


1284

PDFを扱うとき、私はMIMEタイプapplication/pdfapplication/x-pdf他のものに出くわしました。

これら2つのタイプに違いはありますか?ある場合、それは何ですか?どちらが優先されますか?

大量のPDFを配信する必要のあるWebアプリに取り組んでおり、PDFがある場合はそれを正しい方法で実行したいと考えています。

回答:


1705

標準のMIMEタイプはapplication/pdfです。割り当ては、RFC 3778「アプリケーション/ pdfメディアタイプ」で定義されおり、MIMEメディアタイプレジストリから参照されます

MIMEタイプは、標準化団体であるInternet Assigned Numbers Authority(IANA)によって制御されています。これは、ルートネームサーバーとIPアドレススペースを管理する組織と同じです。

の使用はx-pdf、PDFのMIMEタイプの標準化以前のものです。x-名前空間のMIMEタイプvnd.がベンダー固有と見なされるのと同様に、名前空間のMIMEタイプは実験的と見なされます。x-pdf古いソフトウェアとの互換性のために使用される場合があります。


6
2020 Update:この時点で、application/pdfタイプを使用する必要があります-本当に古いソフトウェアとの互換性が必要でない限り、使用しないでくださいx-pdf...
janniks

156

これは、RFC 2045-Multipurpose Internet Mail Extensions(MIME)Part One:Format of Internet Message Bodiesで定義されいる規則です。

  1. プライベート[サブタイプ]値( "X-"で始まる)は、外部の登録や標準化なしに、2つの協力エージェント間で双方向に定義できます。そのような値は登録または標準化できません。

  2. RFC 2048で説明されいるように、新しい標準値をIANAに登録する必要があります

同様の制限がトップレベルのタイプにも適用されます。同じ情報源から

何らかの理由で別のトップレベルタイプを使用する場合は、「X-」で始まる名前を付けて、非標準のステータスを示し、将来の公式名との潜在的な競合を回避する必要があります。

(RFC 2045によると、「[m]メディアタイプとサブタイプの一致は常に大文字と小文字が区別されない」ため、「X-」と「x-」の解釈に違いはありません。)

したがって、IANAが「application / foo」を定義する前に「application / x-foo」が使用されていたと推測するのは公平です。また、IANAトークンの割り当てを認識していない人でも使用される可能性があります。

Chris Hansonが言ったように、MIMEタイプはIANAによって制御されます。これは、RFC 2048-多目的インターネットメール拡張機能(MIME)のパート4:登録手順で詳しく説明されていますIANAが「application / pdf」の定義として引用しているRFC 3778によれば、

application / pdfメディアタイプは、gopherプロトコルで使用するために1993年にPaul Lindnerによって最初に登録されました。その後、1994年にSteve Zillesによって登録が更新されました。

タイプ「application / pdf」は、10年以上前から存在しています。したがって、「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登録手順を使用して登録する必要があります。現在、以下のツリーが作成されます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

個人またはバニティツリー:

個人またはバニティツリーには、実験的に作成されたメディアタイプ、または商用配布されていない製品の一部として作成されたメディアタイプが含まれます。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]

したがって、RFC 2048RFC 6838で述べられているようにapplication/pdf、廃止された未登録のx-メディアタイプの使用を避けながら、標準タイプのMIMEタイプを使用するのが適切であることは明らかです。


3
@TNguyen:害はありません。:)私はそれがトピックを検索する人にいくつかの追加情報を提供するように、他のバージョンの回答を用意するのは良いことだと思います。また、他の回答と比較しながら、いくつかの追加情報を引用しました。
sunil
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.