Un tipo MIME (o tipo de medio) nombra el formato de un contenido con la forma tipo/subtipo, como image/png. Los servidores web lo envían en la cabecera Content-Type para que el navegador sepa si debe mostrar una página, reproducir un vídeo u ofrecer una descarga. Consulte cualquier extensión con el Búsqueda de Tipos MIME.
Tipos habituales
| Tipo | Extensiones | Uso |
|---|---|---|
text/html |
.html .htm |
Páginas web |
text/css |
.css |
Hojas de estilo |
text/javascript |
.js .mjs |
JavaScript (el tipo estándar actual) |
application/json |
.json |
Datos JSON y respuestas de API |
application/xml |
.xml |
Documentos XML |
text/plain |
.txt |
Texto plano |
text/csv |
.csv |
Tablas separadas por comas |
text/markdown |
.md |
Texto Markdown |
application/pdf |
.pdf |
Documentos PDF |
application/zip |
.zip |
Archivos ZIP |
application/gzip |
.gz |
Datos comprimidos con gzip |
application/wasm |
.wasm |
Módulos WebAssembly (deben servirse con este tipo para compilarse en streaming) |
image/png |
.png |
Imágenes PNG |
image/jpeg |
.jpg .jpeg |
Fotos JPEG |
image/gif |
.gif |
Imágenes y animaciones GIF |
image/webp |
.webp |
Imágenes WebP |
image/svg+xml |
.svg |
Gráficos vectoriales SVG |
audio/mpeg |
.mp3 |
Audio MP3 |
audio/wav |
.wav |
Audio WAV |
video/mp4 |
.mp4 |
Vídeo MP4 |
video/webm |
.webm |
Vídeo WebM |
font/woff2 |
.woff2 |
Fuentes web (WOFF2) |
Reglas que conviene recordar
- Datos binarios desconocidos son
application/octet-stream. Los navegadores suelen ofrecer descargarlos en lugar de abrirlos. - Los formularios usan
application/x-www-form-urlencodedpor defecto ymultipart/form-datacuando se adjunta un archivo. - Los tipos de texto suelen llevar un juego de caracteres, como en
text/html; charset=utf-8. Envíe siempre UTF-8 para texto (UTF-8). - Los tipos estructurados terminan en
+jsono+xmlcuando son versiones especializadas de esos formatos, comoimage/svg+xmloapplication/ld+json. - Los tipos de fabricante y experimentales empiezan por
vnd.(por ejemploapplication/vnd.ms-excel) ox-.
Problemas habituales
- Una página se ve como texto plano. El servidor envió
text/plainen lugar detext/html. - Un script o módulo no se ejecuta. Los navegadores rechazan módulos JavaScript y scripts con MIME estricto servidos con un tipo erróneo como
text/htmloapplication/octet-stream. - No carga una fuente o un archivo WebAssembly. Los servidores que no conocen
.woff2o.wasmpueden enviar un tipo genérico. - Detección de tipo (sniffing). A veces los navegadores adivinan el tipo por el contenido. Envíe
X-Content-Type-Options: nosniffpara que confíen en suContent-Type.
Comprobar subidas
Nunca confíe en la extensión de un archivo subido ni en el Content-Type que envió el cliente: ambos los elige quien envía. Compruebe en su lugar los primeros bytes del archivo con la firma esperada (vea Cómo funcionan las firmas de archivo (magic bytes)) y sirva las subidas desde un dominio aparte con nosniff.