Tipo de mídia MIME adequado para arquivos PDF

1284

Ao trabalhar com PDFs, deparei-me com os tipos MIME application/pdfe application/x-pdfentre outros.

Existe uma diferença entre esses dois tipos e, em caso afirmativo, qual é? Um prefere o outro?

Estou trabalhando em um aplicativo Web que deve fornecer grandes quantidades de PDFs e quero fazê-lo da maneira correta, se houver.

friedo
fonte

Respostas:

1705

O tipo MIME padrão é application/pdf. A atribuição é definida na RFC 3778, O tipo de mídia application / pdf , referenciado no registro MIME Media Types .

Os tipos MIME são controlados por um organismo de padrões, a IANA ( Internet Assigned Numbers Authority ). Essa é a mesma organização que gerencia os servidores de nomes raiz e o espaço de endereço IP.

O uso de x-pdfantecede a padronização do tipo MIME para PDF. Os tipos MIME no x-espaço para nome são considerados experimentais, assim como aqueles no vnd.espaço para nome são considerados específicos do fornecedor. x-pdfpode ser usado para compatibilidade com software antigo.

Chris Hanson
fonte
6
Atualização 2020: Neste ponto, o application/pdftipo deve ser usado - a menos que você precise ser compatível com software realmente antigo, não use x-pdf...
janniks 03/02
156

Esta é uma convenção definida na RFC 2045 - MIME (Multipurpose Internet Mail Extensions), Parte Um: Formato dos Corpos de Mensagens da Internet .

  1. Os valores [subtipos] privados (começando com "X-") podem ser definidos bilateralmente entre dois agentes que cooperam sem registro ou padronização externos. Tais valores não podem ser registrados ou padronizados.

  2. Novos valores padrão devem ser registrados na IANA, conforme descrito na RFC 2048 .

Uma restrição semelhante se aplica ao tipo de nível superior. Da mesma fonte,

Se outro tipo de nível superior for usado por qualquer motivo, ele deverá receber um nome começando com "X-" para indicar seu status não padrão e evitar um conflito potencial com um futuro nome oficial.

(Observe que, de acordo com a RFC 2045, "[m] a verificação do tipo e subtipo de mídia SEMPRE diferencia maiúsculas de minúsculas", portanto não há diferença entre a interpretação de 'X-' e 'x-'.)

Portanto, é justo adivinhar que "application / x-foo" foi usado antes da IANA definir "application / foo". E ainda pode ser usado por pessoas que não estão cientes da atribuição de token da IANA.

Como Chris Hanson disse, os tipos MIME são controlados pela IANA. Isso está detalhado na RFC 2048 - MIME (Multipurpose Internet Mail Extensions), parte quatro: Procedimentos de registro . De acordo com a RFC 3778 , citada pela IANA como a definição para "application / pdf",

O tipo de mídia application / pdf foi registrado pela primeira vez em 1993 por Paul Lindner para uso pelo protocolo Gopher; o registro foi posteriormente atualizado em 1994 por Steve Zilles.

O tipo "application / pdf" existe há mais de uma década. Portanto, parece-me que onde quer que "application / x-pdf" tenha sido usado em novos aplicativos, a decisão pode não ter sido deliberada.

GargantuChet
fonte
28

No tipo de mídia Wikipedia,

Um tipo de mídia é composto de um tipo, um subtipo e parâmetros opcionais. Como exemplo, um arquivo HTML pode ser designado text / html; charset = UTF-8.

O tipo de mídia consiste no nome do tipo de nível superior e no nome do subtipo, que é mais estruturado nas chamadas "árvores".

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

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

Todos os tipos de mídia devem ser registrados usando os procedimentos de registro da IANA. Atualmente as seguintes árvores são criadas: standard, vendor, personalou vanity, não registradax.

Padrão:

Os tipos de mídia na árvore de padrões não usam nenhuma faceta da árvore (prefixo).

type / media type name [+suffix]

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

Fornecedor:

A árvore do fornecedor é usada para tipos de mídia associados a produtos publicamente disponíveis. Ele usa vnd.faceta.

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

Árvore pessoal ou de vaidade:

A árvore Pessoal ou Personalizada inclui tipos de mídia criados experimentalmente ou como parte de produtos que não são distribuídos comercialmente. Ele usa prs.faceta.

type / prs. media type name [+suffix]

Não registrado x. árvore:

O "x". A árvore pode ser usada para tipos de mídia projetados exclusivamente para uso em ambientes locais e privados e somente com o acordo ativo das partes que os trocam. Os tipos nesta árvore não podem ser registrados.

De acordo com a versão anterior da RFC 6838 - obsoleta RFC 2048 (publicada em novembro de 1996) , raramente, se é que alguma vez, seria necessário usar tipos experimentais não registrados e, como tal, o uso de "x-" e "x". formulários é desencorajado . As versões anteriores dessa RFC - RFC 1590 e RFC 1521 declaravam que o uso da notação "x-" para o nome do subtipo pode ser usado para subtipos privados e não registrados, mas essa recomendação foi obsoleta em novembro de 1996.

type / x. media type name [+suffix]

Portanto, application/pdffica claro que o tipo MIME do tipo padrão é o apropriado a ser usado, enquanto você deve evitar usar o x-tipo de mídia obsoleto e não registrado , conforme declarado nas RFC 2048 e RFC 6838 .

Por sorte
fonte
3
@TNguyen: Sem problemas. :) Eu acho que é bom ter outras versões de respostas, para que ele forneça algumas informações adicionais para quem pesquisa o tópico. Além disso, ele citou algumas informações adicionais, enquanto comparado a outras respostas.
Sunil