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.
Ferramentas relacionadas
Consulta de Códigos de Status HTTP
Referência de códigos de status HTTP online gratuita com todos os códigos padrão. Pesquise e filtre por categoria, encontre rapidamente significados de códigos de status de 1xx a 5xx.
Gerador de dados CSV
Gerador online de dados de teste para CSV. Suporta nome, telefone, ID, data, dinheiro e outros tipos de campo. Personalize regras por coluna para gerar dados fictícios em lote e exportar arquivos .csv com delimitadores e BOM configuráveis. Dados gerados localmente para privacidade.
Editor Mermaid
Editor de diagramas Mermaid online. Crie fluxogramas, diagramas de sequência, diagramas de classes, diagramas de estado, diagramas ER, diagramas de Gantt, gráficos de pizza, mapas mentais e mapas de jornada. Visualização em tempo real com exportação PNG/SVG.
Referência de Comandos Git
Folha de cheat de comandos Git online gratuita com os comandos Git mais usados. Organizado por categoria com pesquisa e filtro para consulta rápida de comandos Git.
JSON para TypeScript
Conversor JSON para TypeScript online gratuito gerando automaticamente definições de interface. Suporte a objetos aninhados, arrays, tipos union, acelere o desenvolvimento TypeScript.
Consulta de Tabela ASCII
Referência de tabela ASCII online gratuita com caracteres de controle, caracteres imprimíveis e caracteres estendidos. Pesquise e filtre por categoria para consulta rápida de códigos de caracteres.
