Referência de Tipos MIME
Busca rápida de tipos MIME de extensões de arquivo com busca e filtro de categoria
Documento(17)
application/pdf
application/msword
application/vnd.openxmlformats-officedocument.wordprocessingml.document
application/vnd.ms-excel
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
application/vnd.ms-powerpoint
application/vnd.openxmlformats-officedocument.presentationml.presentation
text/plain
application/rtf
application/vnd.oasis.opendocument.text
application/vnd.oasis.opendocument.spreadsheet
application/vnd.oasis.opendocument.presentation
text/csv
application/json
application/xml
text/html
text/html
Imagem(15)
image/jpeg
image/jpeg
image/png
image/gif
image/webp
image/svg+xml
image/x-icon
image/bmp
image/tiff
image/tiff
image/avif
image/heic
image/heif
image/vnd.adobe.photoshop
image/raw
Áudio(10)
audio/mpeg
audio/wav
audio/ogg
audio/mp4
audio/flac
audio/aac
audio/x-ms-wma
audio/aiff
audio/midi
audio/midi
Vídeo(12)
video/mp4
video/webm
video/x-msvideo
video/quicktime
video/x-ms-wmv
video/x-flv
video/x-matroska
video/mp4
video/mpeg
video/mpeg
video/3gpp
video/mp2t
Arquivo(9)
application/zip
application/vnd.rar
application/x-7z-compressed
application/x-tar
application/gzip
application/x-bzip2
application/x-xz
application/x-iso9660-image
application/x-apple-diskimage
Código(31)
application/javascript
application/javascript
application/typescript
application/typescript
application/javascript
text/css
text/x-scss
text/x-sass
text/x-less
text/x-python
text/x-java
text/x-c
text/x-c++
text/x-c
text/x-c++
text/x-csharp
text/x-go
text/x-rust
text/x-ruby
text/x-php
text/x-swift
text/x-kotlin
application/sql
application/x-sh
application/x-sh
application/x-yaml
application/x-yaml
application/toml
text/x-ini
text/x-vue
text/x-svelte
Fonte(5)
font/woff
font/woff2
font/ttf
font/otf
application/vnd.ms-fontobject
Outro(16)
application/vnd.microsoft.portable-executable
application/x-msi
application/vnd.android.package-archive
application/octet-stream
application/vnd.debian.binary-package
application/x-rpm
application/java-archive
application/java-archive
application/x-shockwave-flash
application/x-chrome-extension
application/x-xpinstall
application/x-bittorrent
text/calendar
text/vcard
application/epub+zip
application/x-mobipocket-ebook
O que é um Tipo MIME?
Tipos MIME (Extensões de Correio da Internet Multipropósito) são uma forma padrão de indicar a natureza e formato de documentos, arquivos ou byte streams. Navegadores e servidores usam tipos MIME para determinar como lidar com conteúdo. Por exemplo, receber image/jpeg diz ao navegador para exibir uma imagem. Tipos MIME descrevem que tipo de conteúdo um arquivo ou resposta HTTP contém, como text/html, application/json, image/png ou application/pdf. Eles afetam renderização do navegador, downloads, parsing de APIs, validação de upload, cache e comportamento de segurança. Extensão e MIME nem sempre coincidem, então verificá-los ajuda ao diagnosticar servidor, arquivos desconhecidos ou problemas de envio. Por segurança, tipos MIME não devem ser confiados cegamente; inspeção de conteúdo, regras de extensão e allowlist explícita devem trabalhar juntas.
Como Usar
Referência Rápida
- Use a caixa de pesquisa para encontrar extensões ou tipos MIME específicos
- Clique nas tags de categoria para filtrar por tipo de arquivo
- Clique nos botões 'Ext' ou 'MIME' para copiar o conteúdo correspondente
- Navegue pelas categorias para consulta rápida: documentos, imagens, áudio, vídeo, arquivos compactados, código, fontes, etc.
Observações de Consulta
- Tipos MIME são convenções usadas por servidores, navegadores e aplicações; a extensão do arquivo por si só não comprova o conteúdo real.
- Para uploads e verificações de segurança, valide tanto o tipo MIME declarado quanto a assinatura do arquivo sempre que possível.
Casos de uso
Princípio técnico
Tipos MIME (Multipurpose Internet Mail Extensions) são identificadores padronizados para formatos de dados, originalmente definidos no RFC 2045/RFC 2046 para anexos de e-mail e posteriormente adotados pelo HTTP (RFC 7231 §3.1.1.5) para negociação de conteúdo web. Um tipo MIME é estruturado como tipo/subtipo — o tipo declara a categoria ampla (text, image, audio, video, application, multipart, font, model) e o subtipo especifica o formato exato (por exemplo, text/html, image/png, application/json). Parâmetros opcionais seguem um ponto e vírgula (text/html; charset=utf-8). A Internet Assigned Numbers Authority (IANA) mantém o registro oficial de tipos MIME em iana.org/assignments/media-types. O registro segue o RFC 6838, que define um processo de revisão exigindo um documento de especificação, considerações de segurança e notas de interoperabilidade. Tipos não registrados podem usar o prefixo x- (por exemplo, application/x-tar) como convenção para formatos experimentais ou específicos de fabricantes, embora o RFC 6648 recomende evitar o prefixo x- em favor do registro adequado. No HTTP, o cabeçalho Content-Type informa ao cliente como interpretar o corpo da resposta. Um servidor que retorna Content-Type: image/svg+xml aciona o renderizador SVG do navegador; Content-Type: application/octet-stream aciona um prompt de download porque o navegador não consegue determinar o formato. O navegador também usa informações de tipo MIME para MIME sniffing — quando um servidor omite o Content-Type ou envia um tipo genérico, o navegador pode inspecionar os primeiros bytes da resposta (magic bytes) para adivinhar o formato real. Esse comportamento é controlado pelo cabeçalho X-Content-Type-Options: nosniff, que desabilita o sniffing e exige que o servidor declare o tipo correto. Para uploads de arquivos, o cabeçalho Accept informa ao servidor quais tipos MIME o cliente espera na resposta, enquanto o atributo accept do elemento input restringe o seletor de arquivos a tipos específicos (por exemplo, accept="image/png, image/jpeg"). No lado do servidor, arquivos enviados devem ser validados tanto pelo tipo MIME declarado quanto pela assinatura do arquivo (magic bytes), pois nenhum dos dois isoladamente é confiável — um arquivo chamado image.png com Content-Type: image/png pode conter código executável. A ferramenta serve como referência para consultar o tipo MIME canônico de uma determinada extensão de arquivo, cobrindo mais de 100 formatos comuns em oito categorias.
- Estrutura RFC 2046: tipo/subtipo — o tipo indica a categoria ampla de conteúdo e o subtipo o formato exato; parâmetros opcionais seguem um ponto e vírgula (text/html; charset=utf-8) e são case-insensitive por especificação, embora minúsculas seja a convenção.
- Registro IANA (RFC 6838): Novos tipos de mídia exigem um documento de especificação, seção de considerações de segurança e notas de interoperabilidade — o processo de revisão garante que os tipos sejam bem documentados e que conflitos sejam evitados antes de entrarem no registro.
- Cabeçalho HTTP Content-Type: O servidor declara o tipo MIME do corpo da resposta; os navegadores o usam para selecionar o renderizador apropriado (parser HTML, decodificador de imagens, visualizador de PDF) ou acionar um download — um Content-Type incorreto é a causa mais comum de bugs de 'download em vez de exibição'.
- MIME sniffing e X-Content-Type-Options: Quando o Content-Type está ausente ou é genérico, navegadores podem inspecionar magic bytes para adivinhar o formato — X-Content-Type-Options: nosniff desabilita esse comportamento e exige uma correspondência exata do Content-Type, o que é uma boa prática de segurança.
- application/octet-stream: O tipo genérico de fallback binário — navegadores o tratam como um fluxo opaco e acionam um download, sendo a opção mais segura quando o servidor não consegue determinar o formato, mas impede a visualização no navegador de conteúdo que poderia ser exibido.
- Validação de upload de arquivos: O atributo accept do input filtra o seletor de arquivos no lado do cliente, mas a validação no servidor deve verificar tanto o Content-Type declarado quanto os magic bytes do arquivo — uma incompatibilidade entre extensão, tipo MIME e assinatura do arquivo é um sinal de alerta para uploads maliciosos.
- Tipos específicos de fabricantes e experimentais: A convenção do prefixo x- (application/x-tar, video/x-matroska) é anterior ao processo formal de registro — o RFC 6648 recomenda migrar esses tipos para tipos registrados na IANA sempre que possível, mas muitos permanecem em uso amplo.
Exemplos
Configuração mime.types do Nginx
types {
text/html html htm;
image/jpeg jpg jpeg;
application/pdf pdf;
application/javascript js;
}
Nota: cada linha mapeia um tipo MIME para uma ou mais extensões de arquivo; o Nginx serve o tipo no cabeçalho Content-Type
IANA: https://www.iana.org/assignments/media-types/ mantém o registro oficialCabeçalho de resposta HTTP Content-Type
Content-Type: application/json; charset=utf-8
Nota: charset é opcional, mas recomendado para text/* e application/json; clientes o usam para decodificar o corpo corretamente
RFC: a seção 3.1.1.5 da RFC 7231 define a semântica do cabeçalho Content-Type
MDN: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-TypeConstrutor Blob no navegador
const blob = new Blob([data], { type: 'application/pdf' });
const url = URL.createObjectURL(blob);
Nota: o type se torna o Content-Type quando o blob é posteriormente baixado ou enviado; escolha um subtipo específico para evitar application/octet-stream
MDN: https://developer.mozilla.org/en-US/docs/Web/API/Blob/Blob documenta o parâmetro typeTipos MIME comuns por categoria
Texto: text/plain, text/html, text/css, text/javascript, text/markdown
Imagem: image/jpeg, image/png, image/gif, image/webp, image/svg+xml
Áudio: audio/mpeg, audio/wav, audio/ogg, audio/aac
Vídeo: video/mp4, video/webm, video/ogg
Application: application/json, application/pdf, application/xml, application/zip
A IANA categoriza esses tipos no registro Media Types sob nomes de tipo de nível superiorPerguntas frequentes
O que é um tipo MIME e por que ele importa?
Um tipo MIME (Multipurpose Internet Mail Extensions, também chamado de tipo de mídia) é um rótulo curto como text/html, image/png ou application/json que diz ao software receptor como interpretar um fluxo de bytes. Navegadores, clientes de e-mail, uploaders de arquivos e APIs usam isso para decidir se renderizam, baixam, analisam ou rejeitam o conteúdo.
Qual a diferença entre tipo MIME e extensão de arquivo?
A extensão faz parte do nome do arquivo e é puramente uma convenção de nomenclatura. O tipo MIME é enviado pela rede no cabeçalho Content-Type. Geralmente são consistentes (.png ↔ image/png), mas um servidor pode servir qualquer extensão com qualquer tipo MIME, e os navegadores confiam muito mais no cabeçalho do que na extensão. Manter os dois alinhados é boa prática; depender da extensão para segurança é um bug.
O que significa application/octet-stream?
É o tipo MIME genérico para 'dados binários arbitrários'. Navegadores que recebem isso oferecem download em vez de tentar renderizar o conteúdo. Servidores recorrem a ele quando não conseguem identificar o formato, o que geralmente significa um mapeamento MIME ausente ou mal configurado. Substitua pelo tipo específico correto sempre que possível.
Posso confiar no Content-Type para validar arquivos enviados?
Não por si só. Qualquer um pode declarar image/png enquanto envia um executável. Sempre inspecione os bytes reais (números mágicos, cabeçalho PNG 89 50 4E 47, cabeçalho PDF %PDF-, cabeçalho ZIP PK), confira a extensão do arquivo, aplique uma allowlist no servidor e limite o tamanho do arquivo. O MIME derivado pelo navegador em uploads é uma dica, não uma prova.
Por que um download salva com o nome ou extensão errados?
Os navegadores escolhem o nome do arquivo a partir do cabeçalho Content-Disposition, do caminho da URL e do tipo MIME, nessa ordem. Se o servidor retornar text/html para um download de PDF, o navegador pode salvar com extensão .html. Defina Content-Disposition: attachment; filename="name.pdf" e o tipo MIME application/pdf correto para evitar surpresas.
Como encontro o tipo MIME correto para um formato personalizado ou raro?
Verifique primeiro o registro de tipos de mídia da IANA (iana.org/assignments/media-types). Para formatos não registrados ou específicos de fornecedor, a convenção é application/vnd.* ou application/x-* (por exemplo, application/vnd.api+json, application/x-7z-compressed). Use a correspondência padrão mais próxima antes de inventar uma nova.
Por que .json e .js mostram tipos MIME diferentes?
JSON é dado e usa application/json. JavaScript é código executável servido como text/javascript ou application/javascript (a RFC 9239 tornou text/javascript o recomendado). Confundi-los importa: uma tag script se recusa a executar application/json, e alguns servidores rejeitam application/javascript quando aceitam apenas a variante text.