web-dev-qa-db-ja.com

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

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

これら2つのタイプの間に違いはありますか?そして、もしそうなら、それは何ですか?一方が他方よりも優先されますか。

私は、膨大な量のPDFを配信する必要があるWebアプリケーションを開発しています。それがある場合は、それを正しい方法で実行したいと考えています。

1181
friedo

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

MIMEタイプは、標準化団体の インターネット割り当て番号局 (IANA)によって制御されます。これは、ルートネームサーバーとIPアドレス空間を管理する組織と同じです。

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

1569
Chris Hanson

これは RFC 2045 - 多目的インターネットメール拡張機能(MIME)パート1:インターネットメッセージ本文のフォーマット で定義されている規約です。

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

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

同様の制限が最上位タイプにも適用されます。同じ情報源から

何らかの理由で別の最上位タイプを使用する場合は、その非標準の状況を示し、将来の正式名との潜在的な矛盾を避けるために、 "X-"で始まる名前を付ける必要があります。

(RFC 2045によると、 "メディアタイプとサブタイプの[m] atchingは常に大文字と小文字を区別しない"ので、 'X-'と 'x-'の解釈に違いはありません。)

そのため、IANAが "application/foo"を定義する前に "application/x-foo"が使用されていたと推測するのは公平です。そしてそれはまだIANAトークン割り当てを知らない人々によって使われるかもしれません。

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

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

タイプ "application/pdf"は10年以上前から出回っています。それで、私は、 "application/x-pdf"が新しいアプリケーションで使われているところはどこでも、その決定は意図的ではなかったようです。

145
GargantuChet

ウィキペディアのメディアタイプから、

メディアタイプは、タイプ、サブタイプ、およびオプションのパラメーターで構成されます。例として、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」。フォームは推奨されません。そのRFCの以前のバージョン-RFC 1590およびRFC 1521は、サブタイプ名の「x-」表記の使用が未登録およびプライベートのサブタイプに使用できると述べましたが、この勧告は1996年11月に廃止されました。

type / x. media type name [+suffix]

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

25
Lucky