Richtiger MIME-Medientyp für PDF-Dateien

1283

Wenn Sie mit PDF - Dateien arbeiten, ich habe über die MIME - Typen läuft application/pdfund application/x-pdfunter anderem.

Gibt es einen Unterschied zwischen diesen beiden Typen und wenn ja, um welchen handelt es sich? Wird einer dem anderen vorgezogen?

Ich arbeite an einer Web-App, die große Mengen an PDFs liefern muss, und ich möchte es richtig machen, falls es eine gibt.

Friedo
quelle

Antworten:

1705

Der Standard-MIME-Typ ist application/pdf. Die Zuweisung ist in RFC 3778, Die Anwendung / PDF-Medientyp, definiert, auf die in der Registrierung für MIME-Medientypen verwiesen wird .

MIME-Typen werden von einer Normungsorganisation, der Internet Assigned Numbers Authority (IANA), kontrolliert . Dies ist dieselbe Organisation, die die Root-Nameserver und den IP-Adressraum verwaltet.

Die Verwendung von ist x-pdfälter als die Standardisierung des MIME-Typs für PDF. MIME-Typen im x-Namespace gelten als experimentell, ebenso wie diejenigen im vnd.Namespace als herstellerspezifisch. x-pdfkann aus Gründen der Kompatibilität mit alter Software verwendet werden.

Chris Hanson
quelle
6
2020 Update: Zu diesem Zeitpunkt sollte der application/pdfTyp verwendet werden - es sei denn, Sie müssen mit wirklich alter Software kompatibel sein, verwenden Sie nicht x-pdf...
janniks
156

Dies ist eine Konvention, die in RFC 2045 - MIME (Multipurpose Internet Mail Extensions) Teil 1: Format von Internetnachrichtenkörpern definiert ist .

  1. Private [Subtyp] -Werte (beginnend mit "X-") können bilateral zwischen zwei kooperierenden Agenten ohne externe Registrierung oder Standardisierung definiert werden. Solche Werte können nicht registriert oder standardisiert werden.

  2. Neue Standardwerte sollten bei IANA registriert werden, wie in RFC 2048 beschrieben .

Eine ähnliche Einschränkung gilt für den Typ der obersten Ebene. Aus derselben Quelle,

Wenn ein anderer Top-Level-Typ aus irgendeinem Grund verwendet werden soll, muss ihm ein Name gegeben werden, der mit "X-" beginnt, um seinen nicht standardmäßigen Status anzuzeigen und einen möglichen Konflikt mit einem zukünftigen offiziellen Namen zu vermeiden.

(Beachten Sie, dass gemäß RFC 2045 "[m] bei der Zuordnung von Medientyp und Subtyp IMMER die Groß- und Kleinschreibung nicht berücksichtigt wird", sodass zwischen der Interpretation von 'X-' und 'x-' kein Unterschied besteht.)

Man kann also davon ausgehen, dass "application / x-foo" verwendet wurde, bevor die IANA "application / foo" definierte. Und es könnte immer noch von Leuten verwendet werden, die sich der IANA-Token-Zuweisung nicht bewusst sind.

Wie Chris Hanson sagte, werden MIME-Typen von der IANA kontrolliert. Dies wird in RFC 2048 - MIME (Multipurpose Internet Mail Extensions), Teil 4: Registrierungsverfahren beschrieben . Gemäß RFC 3778 , der von der IANA als Definition für "application / pdf" zitiert wird ,

Der Antrags- / PDF-Medientyp wurde erstmals 1993 von Paul Lindner zur Verwendung durch das Gopher-Protokoll registriert. Die Registrierung wurde 1994 von Steve Zilles aktualisiert.

Der Typ "application / pdf" gibt es seit weit über einem Jahrzehnt. Daher scheint mir die Entscheidung, wo immer "application / x-pdf" in neuen Apps verwendet wurde, möglicherweise nicht absichtlich gewesen zu sein.

GargantuChet
quelle
28

Aus Wikipedia Medientyp,

Ein Medientyp besteht aus einem Typ, einem Subtyp und optionalen Parametern. Beispielsweise kann eine HTML-Datei als Text / HTML bezeichnet werden. Zeichensatz = UTF-8.

Der Medientyp besteht aus dem Typnamen der obersten Ebene und dem Namen des Untertyps, der weiter in sogenannte "Bäume" strukturiert ist.

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

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

Alle Medientypen sollten mithilfe der IANA-Registrierungsverfahren registriert werden. Derzeit werden folgende Bäume erstellt: standard, vendor, personaloder vanity, nicht eingetragenex.

Standard:

Medientypen im Standardbaum verwenden keine Baumfacette (Präfix).

type / media type name [+suffix]

Beispiele: "application / xhtml + xml", "image / png"

Verkäufer:

Der Lieferantenbaum wird für Medientypen verwendet, die mit öffentlich verfügbaren Produkten verknüpft sind. Es verwendet vnd.Facette.

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

Persönlicher oder Eitelkeitsbaum:

Der Personal- oder Vanity-Baum enthält Medientypen, die experimentell oder als Teil von Produkten erstellt wurden, die nicht kommerziell vertrieben werden. Es verwendet prs.Facette.

type / prs. media type name [+suffix]

Nicht registriert x. Baum:

Das "x" Der Baum darf für Medientypen verwendet werden, die ausschließlich zur Verwendung in privaten, lokalen Umgebungen und nur mit aktiver Zustimmung der Parteien, die sie austauschen, bestimmt sind. Typen in diesem Baum können nicht registriert werden.

Gemäß der vorherigen Version von RFC 6838 - veralteter RFC 2048 (veröffentlicht im November 1996) sollte es selten, wenn überhaupt, notwendig sein, nicht registrierte experimentelle Typen zu verwenden und als solche sowohl "x-" als auch "x" zu verwenden. Formen wird entmutigt . In früheren Versionen dieses RFC - RFC 1590 und RFC 1521 wurde angegeben, dass die Verwendung der "x-" Notation für den Untertypnamen für nicht registrierte und private Untertypen verwendet werden kann. Diese Empfehlung wurde jedoch im November 1996 überholt.

type / x. media type name [+suffix]

Es ist daher klar, dass der Standardtyp MIME application/pdfder geeignete Typ ist, während Sie die Verwendung des veralteten und nicht registrierten x-Medientyps gemäß RFC 2048 und RFC 6838 vermeiden sollten .

Glücklich
quelle
3
@TNguyen: Kein Schaden. :) Ich denke, es ist gut, andere Versionen von Antworten zu haben, damit es einige zusätzliche Informationen für jemanden liefert, der das Thema durchsucht. Außerdem zitierte er einige zusätzliche Informationen im Vergleich zu anderen Antworten.
Sunil