1. O Que Sao MIME Types
MIME Types (Multipurpose Internet Mail Extensions) sao identificadores padronizados que descrevem o tipo e formato de dados transmitidos em comunicacoes digitais. Originalmente criados para emails, tornaram-se o padrao universal para identificacao de conteudo na web.
Quando um servidor HTTP envia um arquivo, ele precisa informar ao cliente (navegador ou aplicativo) como interpretar os bytes recebidos. E exatamente isso que o MIME Type faz: diz se o conteudo e uma imagem, um video, um JSON, um HTML ou qualquer outro formato.
2. Estrutura e Formato
Um MIME Type segue sempre o formato tipo/subtipo, onde:
- Tipo: categoria geral do conteudo (text, image, audio, video, application, font, multipart).
- Subtipo: formato especifico dentro da categoria (html, jpeg, json, mp4, etc.).
- Parametros opcionais: informacoes adicionais como charset, boundary, etc. Ex:
text/html; charset=utf-8.
Tipos nao padronizados podem usar o prefixo x- (ex: application/x-zip), embora muitos desses sejam hoje registrados oficialmente sem o prefixo.
3. MIME Types no HTTP
No protocolo HTTP, os MIME Types aparecem principalmente em dois cabecalhos:
- Content-Type: indica o tipo do corpo da requisicao ou resposta. Ex:
Content-Type: application/json. - Accept: enviado pelo cliente para indicar quais tipos aceita. Ex:
Accept: text/html, application/json.
Definir o Content-Type incorretamente pode causar problemas serios: um JSON enviado como text/plain nao sera processado automaticamente pelo cliente; um script JS servido como text/html sera ignorado pelo navegador.
"O MIME Type incorreto e uma das causas mais comuns de bugs silenciosos em APIs e uploads de arquivos. Sempre verifique o tipo correto antes de configurar seu servidor ou cliente HTTP."
4. Principais Categorias
Nossa tabela organiza os MIME Types nas seguintes categorias:
- image: formatos de imagem como JPEG, PNG, WebP, SVG, AVIF.
- video: formatos de video como MP4, WebM, MKV, MOV.
- audio: formatos de audio como MP3, AAC, OGG, FLAC.
- text: formatos textuais como HTML, CSS, JavaScript, CSV, Markdown.
- application: formatos de aplicacao como JSON, XML, ZIP, PDF, WASM.
- font: fontes web como WOFF2, WOFF, TTF, OTF.
5. Tipos Obsoletos e Armadilhas
Varios MIME Types antigos ainda circulam em codigos legados, mas foram substituidos por versoes padronizadas:
application/javascriptfoi substituido portext/javascript(RFC 9239).application/x-gzipfoi substituido porapplication/gzip(RFC 6713).application/x-rar-compressedfoi substituido porapplication/vnd.rar.text/xmlem contextos nao humanos deve serapplication/xml.
Nossa secao "Tipos Obsoletos" na tabela lista esses casos com o substituto recomendado e o motivo da obsolescencia.
6. Perguntas Frequentes
Qual MIME Type usar para JSON em APIs REST?
Use sempre application/json. E o tipo oficial registrado na IANA e reconhecido por todos os frameworks e clientes HTTP modernos.
O MIME Type e o mesmo que a extensao do arquivo?
Nao. A extensao e apenas uma convencao do sistema de arquivos. O MIME Type e o identificador formal do conteudo. Um arquivo .txt pode ter MIME Type text/plain, mas um .log tambem pode. A extensao e uma dica; o MIME Type e a informacao definitiva.
Como configurar MIME Types em servidores web?
No Nginx, use a diretiva types no arquivo de configuracao. No Apache, use o arquivo .htaccess com AddType. Na maioria dos casos, os servidores ja tem mapeamentos padrao, mas extensoes novas como .webp ou .woff2 podem precisar ser adicionadas manualmente em versoes antigas.