Type de support MIME approprié pour les fichiers PDF

1285

Lorsque je travaille avec des fichiers PDF, j'ai parcouru les types MIME application/pdfet application/x-pdfentre autres.

Y a-t-il une différence entre ces deux types, et si oui, quelle est-elle? Est-ce que l'un est préféré à l'autre?

Je travaille sur une application web qui doit fournir d'énormes quantités de PDF et je veux le faire correctement, s'il y en a un.

friedo
la source

Réponses:

1705

Le type MIME standard est application/pdf. L'affectation est définie dans la RFC 3778, The Application / pdf Media Type , référencée dans le registre MIME Media Types .

Les types MIME sont contrôlés par un organisme de normalisation, l' Internet Assigned Numbers Authority (IANA). Il s'agit de la même organisation qui gère les serveurs de noms racine et l'espace d'adressage IP.

L'utilisation de x-pdfantérieur à la normalisation du type MIME pour PDF. Les types MIME dans l' x-espace de noms sont considérés comme expérimentaux, tout comme ceux de l' vnd.espace de noms sont considérés comme spécifiques au fournisseur. x-pdfpeut être utilisé pour la compatibilité avec les anciens logiciels.

Chris Hanson
la source
6
Mise à jour 2020: à ce stade, le application/pdftype doit être utilisé - sauf si vous devez être compatible avec de très vieux logiciels, n'utilisez pas x-pdf...
janniks
156

Il s'agit d'une convention définie dans la RFC 2045 - Extensions de messagerie Internet polyvalentes (MIME), première partie: Format des corps de message Internet .

  1. Les valeurs privées de [sous-type] (commençant par "X-") peuvent être définies bilatéralement entre deux agents coopérants sans enregistrement ou standardisation externe. Ces valeurs ne peuvent pas être enregistrées ou standardisées.

  2. Les nouvelles valeurs standard doivent être enregistrées auprès de l'IANA comme décrit dans la RFC 2048 .

Une restriction similaire s'applique au type de niveau supérieur. De la même source,

Si un autre type de niveau supérieur doit être utilisé pour une raison quelconque, il faut lui attribuer un nom commençant par "X-" pour indiquer son statut non standard et éviter un conflit potentiel avec un futur nom officiel.

(Notez que selon la RFC 2045, "[m] la gravure du type et du sous-type de média est TOUJOURS insensible à la casse", donc il n'y a pas de différence entre l'interprétation de 'X-' et 'x-'.)

Il est donc juste de deviner que "application / x-foo" a été utilisé avant que l'IANA ne définisse "application / foo". Et il pourrait toujours être utilisé par des personnes qui ne sont pas au courant de l'attribution des jetons IANA.

Comme Chris Hanson l'a dit, les types MIME sont contrôlés par l'IANA. Ceci est détaillé dans la RFC 2048 - Extensions de messagerie Internet polyvalentes (MIME), quatrième partie: procédures d'enregistrement . Selon la RFC 3778 , qui est citée par l'IANA comme la définition de "application / pdf",

Le type de média application / pdf a été enregistré pour la première fois en 1993 par Paul Lindner pour être utilisé par le protocole gopher; l'enregistrement a ensuite été mis à jour en 1994 par Steve Zilles.

Le type "application / pdf" existe depuis plus d'une décennie. Il me semble donc que partout où "application / x-pdf" a été utilisé dans de nouvelles applications, la décision n'a peut-être pas été délibérée.

GargantuChet
la source
28

De Wikipédia type de média,

Un type de média est composé d'un type, d'un sous-type et de paramètres facultatifs. Par exemple, un fichier HTML peut être désigné texte / html; charset = UTF-8.

Le type de support se compose d'un nom de type de niveau supérieur et d'un nom de sous-type, qui est ensuite structuré en soi-disant "arbres".

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

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

Tous les types de supports doivent être enregistrés en utilisant les procédures d'enregistrement IANA. Actuellement , les arbres suivants sont créés: standard, vendor, personalou vanity, non enregistréx.

La norme:

Les types de média dans l'arborescence des normes n'utilisent aucune facette d'arbre (préfixe).

type / media type name [+suffix]

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

Vendeur:

L'arborescence des fournisseurs est utilisée pour les types de médias associés aux produits accessibles au public. Il utilise une 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

Arbre personnel ou vanité:

L'arbre personnel ou vanity comprend les types de supports créés expérimentalement ou dans le cadre de produits qui ne sont pas distribués commercialement. Il utilise une prs.facette.

type / prs. media type name [+suffix]

Non enregistré x. arbre:

Le «x». L'arbre peut être utilisé pour des types de supports destinés exclusivement à une utilisation dans des environnements privés et locaux et uniquement avec l'accord actif des parties qui les échangent. Les types de cet arbre ne peuvent pas être enregistrés.

Selon la version précédente de la RFC 6838 - RFC 2048 obsolète (publiée en novembre 1996), il devrait rarement, voire jamais, être nécessaire d'utiliser des types expérimentaux non enregistrés, et en tant que tel, utiliser à la fois "x-" et "x". les formulaires sont découragés . Les versions précédentes de cette RFC - RFC 1590 et RFC 1521 indiquaient que l'utilisation de la notation "x-" pour le nom de sous-type pouvait être utilisée pour les sous-types non enregistrés et privés, mais cette recommandation était obsolète en novembre 1996.

type / x. media type name [+suffix]

Il est donc clair que le type MIME de type standard application/pdfest le type approprié à utiliser tandis que vous devez éviter d'utiliser le x-type de support obsolète et non enregistré comme indiqué dans RFC 2048 et RFC 6838 .

Chanceux
la source
3
@TNguyen: Pas de mal. :) Je pense qu'il est bon d'avoir d'autres versions de réponses, afin que cela fournisse des informations supplémentaires à celui qui recherche le sujet. Il a également cité quelques informations supplémentaires, par rapport à d'autres réponses.
sunil