Guia de Referência Completo de Tipos MIME e Content-Type
Sempre que o seu navegador solicita um arquivo de um servidor web, o servidor não envia apenas os bits e bytes. Ele também envia uma "etiqueta" que informa ao navegador que tipo de arquivo é. Essa etiqueta é chamada de Tipo MIME (Multipurpose Internet Mail Extensions), e é enviada através do cabeçalho HTTP Content-Type.
Se o servidor enviar o tipo MIME errado, o seu navegador pode tentar baixar um vídeo em vez de reproduzi-lo, ou pode se recusar a executar um script por motivos de segurança.
Tabela de Referência Rápida: Tipos MIME Comuns
| Tipo MIME | Extensão Comum | Categoria | Propósito |
|---|---|---|---|
text/html |
.html, .htm |
Página Web | Conteúdo de página web padrão |
text/css |
.css |
Estilo | Folhas de Estilo em Cascata (CSS) |
application/javascript |
.js |
Lógica | Scripts de aplicativos web |
application/json |
.json |
Dados | Dados estruturados para APIs |
application/xml |
.xml |
Dados | Linguagem de Marcação Extensível (XML) |
text/csv |
.csv |
Dados | Valores Separados por Vírgula (CSV) |
image/webp |
.webp |
Mídia | Formato de imagem compactado moderno |
image/avif |
.avif |
Mídia | Formato de imagem de alta eficiência |
font/woff2 |
.woff2 |
Fonte | Formato de fonte web moderno |
application/wasm |
.wasm |
Compilado | Código binário WebAssembly |
application/octet-stream |
.bin, .exe |
Binário | Dados binários genéricos (geralmente ativa o download) |
multipart/form-data |
N/A | Upload | Usado para enviar formulários com uploads de arquivos |
1. Dados Estruturados e APIs
Os aplicativos web modernos dependem fortemente desses tipos para trocar informações entre o frontend e o backend.
- application/json: O padrão da indústria para APIs REST. É leve e suportado nativamente pelo JavaScript.
- application/xml: Um formato mais antigo, mas mais poderoso, que suporta esquemas personalizados e validação complexa.
- text/csv: Frequentemente usado para exportar grandes conjuntos de datos de bancos de dados ou planilhas.
2. Mídia e Ativos
Para garantir tempos de carregamento rápidos, os servidores devem identificar corretamente os formatos de mídia modernos de alta compactação.
- image/webp & image/avif: Esses formatos modernos oferecem uma compactação muito melhor do que JPEG ou PNG. Se o seu servidor não enviar o tipo MIME correto, o navegador pode falhar ao renderizar a imagem corretamente.
- font/woff2: Essencial para a tipografia web. A tipagem MIME correta garante que o navegador possa descompactar a fonte rapidamente.
3. Dados Especializados e Binários
- application/wasm: Isso é necessário para que o WebAssembly funcione. Os navegadores são muito rigorosos — eles frequentemente se recusam a compilar um módulo WASM se o servidor não enviar explicitamente o Content-Type
application/wasm. - application/octet-stream: Este é o "coringa" para dados binários. Se um servidor não sabe o que é um arquivo, ele geralmente define esse padrão. Os navegadores tratam isso como um sinal para baixar o arquivo em vez de tentar exibi-lo.
4. Formulários e Uploads
Quando você envia um formulário em um site, o navegador usa um tipo MIME específico para codificar sua entrada.
- application/x-www-form-urlencoded: O padrão para formulários simples baseados em texto. Parece uma query string de URL (
nome=Joao&idade=30). - multipart/form-data: Isso é necessário quando o seu formulário inclui um upload de arquivo. Ele permite que o navegador envie diferentes tipos de dados (texto e arquivos binários) em uma única solicitação, separados por "boundaries" (fronteiras).
Como verificar o tipo MIME de um arquivo
- No Navegador: Abra o DevTools -> guia Network (Rede). Clique em uma solicitação e procure por "Content-Type" na seção Response Headers (Cabeçalhos de Resposta).
- No Linux / macOS: Use o comando
filecom a flag--mime-type:file --mime-type -b minha-imagem.webp # Saída: image/webp
Perguntas Comuns (FAQ)
P: O que acontece se um servidor enviar o Content-Type errado?
R: Os navegadores frequentemente realizam "MIME Sniffing" para tentar adivinar o tipo correto. No entanto, por motivos de segurança (como proteção contra XSS), os navegadores modernos estão se tornando muito mais rigorosos. Se um script for enviado com text/plain em vez de application/javascript, a maioria dos navegadores se recusará a executá-lo.
P: application/javascript é o único tipo correto para arquivos JS?
R: Historicamente, as pessoas usavam text/javascript ou application/x-javascript. Embora application/javascript tenha sido a recomendação formal, o padrão mais recente voltou a preferir text/javascript. A maioria dos servidores e navegadores lida bem com ambos.
P: Por que recebo um erro "No 'Content-Type' header"?
R: Isso significa que o servidor não forneceu nenhuma informação sobre o tipo de arquivo. Os navegadores geralmente usarão como padrão text/plain ou application/octet-stream, o que pode fazer com que sua página seja renderizada incorretamente ou acione um download indesejado.
Ferramentas Relacionadas no Tool3M
- Codificador/Decodificador Base64: Converta dados binários em um URI de Dados (que inclui o tipo MIME) para uso em HTML ou CSS.
- Formatador JSON: Valide e formate seus dados
application/json.