Lorsque je travaille avec des fichiers PDF, j'ai rencontré les types MIME application/pdf
et application/x-pdf
, entre autres.
Existe-t-il une différence entre ces deux types et, le cas échéant, de quoi s'agit-il? L'un est-il préféré à l'autre?
Je travaille sur une application Web qui doit générer d'énormes quantités de fichiers PDF et je souhaite le faire correctement, le cas échéant.
Le type MIME standard est application/pdf
. L'affectation est définie dans RFC 3778, Le type de média application/pdf , référencé à partir de registre des types de média MIME .
Les types MIME sont contrôlés par un organisme de normalisation, The Internet Assigned Numbers Authority (IANA). C'est la même organisation qui gère les serveurs de noms racine et l'espace d'adressage IP.
L'utilisation de x-pdf
est antérieure à la normalisation du type MIME pour PDF. Les types MIME dans l'espace de noms x-
sont considérés comme expérimentaux, tout comme ceux de l'espace de noms vnd.
sont considérés comme spécifiques au fournisseur. x-pdf
peut être utilisé pour la compatibilité avec les anciens logiciels.
Il s'agit d'une convention définie dans RFC 2045 - MIME (Multipurpose Internet Mail Extensions), première partie: Format des corps de message Internet .
Les valeurs privées [sous-types] (commençant par "X-") peuvent être définies bilatéralement entre deux agents coopérants sans enregistrement ou normalisation externe. De telles valeurs ne peuvent pas être enregistrées ou normalisées.
Les nouvelles valeurs standard doivent être enregistrées auprès de l'IANA, comme décrit dans le 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 quelque raison que ce soit, vous devez lui attribuer un nom commençant par "X-" pour indiquer son statut non standard et éviter un éventuel conflit avec un futur nom officiel.
(Notez que, conformément à la RFC 2045, "le type et le sous-type de support est TOUJOURS insensible à la casse", il n'y a donc aucune différence entre l'interprétation de "X-" et "x-" .)
Il est donc juste de deviner que "application/x-foo" a été utilisé avant la définition par IANA "application/foo". Et il peut toujours être utilisé par des personnes qui ne sont pas au courant de l’attribution de jetons IANA.
Comme Chris Hanson l'a dit, les types MIME sont contrôlés par l'IANA. Ceci est détaillé dans RFC 2048 - MIME (Multipurpose Internet Mail Extensions) - Quatrième partie: Procédures d'enregistrement . Selon RFC 3778 , qui est cité par l'IANA comme 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 une utilisation selon le protocole Gopher; l'enregistrement a ensuite été mis à jour en 1994 par Steve Zilles.
Le type "application/pdf" existe depuis plus de dix ans. 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.
De type média Wikipedia,
Un type de support est composé d'un type, d'un sous-type et de paramètres facultatifs. Par exemple, un fichier HTML peut être désigné sous le nom de texte/html; jeu de caractères = UTF-8.
Le type de support est constitué d'un nom de type de niveau supérieur et d'un nom de sous-type, qui est ensuite structuré en "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 à l'aide des procédures d'enregistrement IANA. Actuellement, les arbres suivants sont créés: standard
, vendor
, personal
ou vanity
, non enregistré x.
Standard:
Les types de support dans l'arborescence des normes n'utilisent aucune facette (préfixe).
type / media type name [+suffix]
Exemples: "application/xhtml + xml", "image/png"
Fournisseur:
L'arborescence des fournisseurs est utilisée pour les types de média associés aux produits disponibles au public. Il utilise la facette
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
Arbre personnel ou de vanité:
Personal ou Vanity Tree inclut les types de supports créés à titre expérimental ou faisant partie de produits non distribués commercialement. Il utilise la facette
prs.
.
type / prs. media type name [+suffix]
Non enregistré x. arbre:
Le "x." tree peut être utilisé pour des types de supports exclusivement destinés à être utilisés dans des environnements privés et locaux et uniquement avec l'accord actif des parties qui les échangent. Les types de cette arborescence ne peuvent pas être enregistrés.
Selon la version précédente du document RFC 6838 - obsolète le document RFC 2048 (publié en novembre 1996) , il devrait être rarement, voire jamais nécessaire de recourir à des types expérimentaux non enregistrés. - "et" x. " formes est déconseillé . Les versions précédentes de ces documents RFC - RFC 1590 et RFC 1521 indiquaient que l’utilisation de la notation "x-" pour le nom du 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 standard MIME application/pdf
est le type approprié à utiliser, mais vous devez éviter d'utiliser le type de média obsolète et non enregistré x-
comme indiqué dans RFC 2048 et - RFC 6838 .