1457 Stimmen

Geeigneter MIME-Medientyp für PDF-Dateien

Bei der Arbeit mit PDFs stoße ich auf die MIME-Typen application/pdf y application/x-pdf unter anderem.

Gibt es einen Unterschied zwischen diesen beiden Typen, und wenn ja, worin besteht er? Ist die eine der anderen vorzuziehen?

Ich arbeite an einer Webanwendung, die große Mengen an PDFs liefern muss, und ich möchte das auf die richtige Art und Weise tun, wenn es eine gibt.

1909voto

Chris Hanson Punkte 53324

Der Standard-Medientyp (früher bekannt als MIME-Typen) ist application/pdf . Die Zuordnung ist definiert in RFC 3778, Der Medientyp application/pdf , referenziert von der Registrierung der Medientypen .

Medientypen werden von einem Standardisierungsgremium kontrolliert, dem Internet Assigned Numbers Authority (IANA). Dies ist dieselbe Organisation, die auch die Root-Namensserver und den IP-Adressraum verwaltet.

Die Verwendung von x-pdf vor der Standardisierung des Medientyps für PDF. Medientypen in der x- werden als experimentell betrachtet, ebenso wie die im vnd. werden als herstellerspezifisch betrachtet. x-pdf kann für die Kompatibilität mit alter Software verwendet werden.

31 Stimmen

Update 2020: Zu diesem Zeitpunkt ist die application/pdf Typ verwendet werden - sofern Sie nicht mit sehr alter Software kompatibel sein müssen, sollten Sie keine x-pdf ...

0 Stimmen

Wo wird der MediaType verwendet? Wir können diese ignorieren in MimePart Ziel von MimeKit und die E-Mail-Funktionalität funktioniert immer noch

166voto

GargantuChet Punkte 5471

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

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

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

Eine ähnliche Einschränkung gilt für den Top-Level-Typ. Aus derselben Quelle,

Wenn aus irgendeinem Grund ein anderer Top-Level-Typ verwendet werden soll, muss er einen Namen erhalten, der mit "X-" beginnt, um seinen Nicht-Standard-Status anzuzeigen und um einen möglichen Konflikt mit einem künftigen offiziellen Namen zu vermeiden.

(Beachten Sie, dass laut RFC 2045 "[m]atching of media type and subtype is ALWAYS-insensitive", also gibt es keinen Unterschied zwischen der Interpretation von 'X-' und 'x-').

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 die MIME-Typen von der IANA kontrolliert. Dies ist detailliert in RFC 2048 - Multipurpose Internet Mail Extensions (MIME) Teil vier: Verfahren für die Registrierung . Nach RFC 3778 das ist zitiert von der IANA als die Definition für "application/pdf",

Der Medientyp application/pdf wurde erstmals 1993 von Paul Lindner für die Verwendung durch das Gopher-Protokoll registriert; die Registrierung wurde anschließend 1994 von Steve Zilles aktualisiert.

Den Typ "application/pdf" gibt es seit weit über einem Jahrzehnt. Daher habe ich den Eindruck, dass die Entscheidung, "application/x-pdf" in neuen Anwendungen zu verwenden, nicht unbedingt mit Absicht getroffen wurde.

0 Stimmen

Ich verwende anwendung/pdf und die heruntergeladene PDF-Datei wird als beschädigt angezeigt.

32voto

Lucky Punkte 15797

Aus Wikipedia Medientyp,

Ein Medientyp besteht aus einem Typ, einem Untertyp und optionalen Parametern. Eine HTML-Datei könnte zum Beispiel als text/html; charset=UTF-8 bezeichnet werden.

Der Medientyp besteht aus dem Namen des Top-Level-Typs und dem Namen des Sub-Typs, d. h. 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 nach den IANA-Registrierungsverfahren registriert werden. Derzeit werden die folgenden Bäume erstellt: standard , vendor , personal o vanity , unregistriert x.

Standard:

Die Medientypen im Normenbaum verwenden keine Baumfacette (Präfix).

type / media type name [+suffix]

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

Anbieter:

Die Herstellerstruktur wird für Medientypen verwendet, die mit öffentlich zugänglichen Produkten. Er 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 Baum oder Eitelkeitsbaum:

Persönlicher Baum oder Eitelkeitsbaum umfasst Medienarten, die experimentell oder als Teil von Produkten, die nicht kommerziell vertrieben werden. Er verwendet prs. Facette.

type / prs. media type name [+suffix]

Unregistrierter x. Baum:

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

Gemäß der vorherigen Version von RFC 6838 - veraltetes RFC 2048 (veröffentlicht im November 1996) sollte es selten, wenn überhaupt, notwendig sein nicht registrierte experimentelle Typen zu verwenden, und daher wird von der Verwendung sowohl der "x-" als auch der und "x."-Formen abgeraten wird. . Frühere Versionen dieses RFC - RFC 1590 und RFC 1521 besagten, dass die Verwendung der "x-"-Notation für den für den Subtypnamen für nicht registrierte und private Subtypen verwendet werden kann, aber Diese Empfehlung wurde jedoch im November 1996 überholt.

type / x. media type name [+suffix]

Es ist also klar, dass der Standardtyp MIME-Typ application/pdf zu verwenden, während Sie es vermeiden sollten, die veraltete und nicht registrierte x- Medientyp wie angegeben in RFC 2048 y RFC 6838 .

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X