Referencia de tipos MIME
Busqueda rápida de tipos MIME por extensión de archivo con búsqueda y filtrado por categoría
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
Imagen(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
Audio(10)
audio/mpeg
audio/wav
audio/ogg
audio/mp4
audio/flac
audio/aac
audio/x-ms-wma
audio/aiff
audio/midi
audio/midi
Video(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
Archivo(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
Fuente(5)
font/woff
font/woff2
font/ttf
font/otf
application/vnd.ms-fontobject
Otros(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
¿Qué es un tipo MIME?
Los tipos MIME (Extensiones de Correo de Internet de Propósito Múltiple) son un estándar para indicar la naturaleza y formato de documentos, archivos o flujos de bytes. Los navegadores y servidores usan tipos MIME para determinar cómo manejar el contenido. Por ejemplo, recibir image/jpeg indica al navegador mostrar una imagen. Los tipos MIME describen qué clase de contenido contiene un archivo o respuesta HTTP, como text/html, application/json, image/png o application/pdf. Afectan renderizado del navegador, descargas, parseo de APIs, validación de subidas, caché y comportamiento de seguridad. Extensión y MIME no siempre coinciden, por lo que conviene revisarlos al diagnosticar configuración de servidor, archivos desconocidos o problemas de carga. Por seguridad, no deben confiarse a ciegas; inspección de contenido, reglas de extensión y lista permitida deben usarse juntas.
Cómo usar
Referencia rápida
- Usa el buscador para encontrar extensiones o tipos MIME concretos
- Pulsa las etiquetas de categoría para filtrar por tipo de archivo
- Pulsa los botones 'Ext' o 'MIME' para copiar el contenido correspondiente
- Explora las categorías para una consulta rápida: documentos, imágenes, audio, vídeo, archivos comprimidos, código, fuentes, etc.
Notas de consulta
- Los tipos MIME son convenciones usadas por servidores, navegadores y aplicaciones; la extensión del archivo por sí sola no garantiza su contenido real.
- En subidas y comprobaciones de seguridad, valida tanto el tipo MIME declarado como la firma del archivo cuando sea posible.
Casos de uso
Principio técnico
Los tipos MIME (Multipurpose Internet Mail Extensions) son identificadores estandarizados para formatos de datos, definidos originalmente en RFC 2045/RFC 2046 para adjuntos de correo electrónico y adoptados posteriormente por HTTP (RFC 7231 §3.1.1.5) para la negociación de contenido web. Un tipo MIME tiene la estructura tipo/subtipo: el tipo declara la categoría general (text, image, audio, video, application, multipart, font, model) y el subtipo especifica el formato exacto (por ejemplo, text/html, image/png, application/json). Los parámetros opcionales siguen tras un punto y coma (text/html; charset=utf-8). La Internet Assigned Numbers Authority (IANA) mantiene el registro oficial de tipos MIME en iana.org/assignments/media-types. El registro sigue el proceso definido en RFC 6838, que requiere un documento de especificación, consideraciones de seguridad y notas de interoperabilidad. Los tipos no registrados pueden usar el prefijo x- (por ejemplo, application/x-tar) como convención para formatos experimentales o específicos de un fabricante, aunque RFC 6648 recomienda evitar el prefijo x- en favor de un registro adecuado. En HTTP, la cabecera Content-Type indica al cliente cómo interpretar el cuerpo de la respuesta. Un servidor que devuelve Content-Type: image/svg+xml activa el renderizador SVG del navegador; Content-Type: application/octet-stream provoca un aviso de descarga porque el navegador no puede determinar el formato. El navegador también usa la información de tipo MIME para el content sniffing: cuando el servidor omite Content-Type o envía un tipo genérico, el navegador puede inspeccionar los primeros bytes de la respuesta (magic bytes) para adivinar el formato real. Este comportamiento se controla con la cabecera X-Content-Type-Options: nosniff, que desactiva el sniffing y exige al servidor declarar el tipo correcto. Para subidas de archivos, la cabecera Accept indica al servidor qué tipos MIME espera el cliente en la respuesta, mientras que el atributo accept del elemento input restringe el selector de archivos a tipos específicos (por ejemplo, accept="image/png, image/jpeg"). En el servidor, los archivos subidos deben validarse tanto por su tipo MIME declarado como por su firma de archivo (magic bytes), ya que ninguno de los dos es fiable por sí solo: un archivo llamado image.png con Content-Type: image/png podría contener código ejecutable. La herramienta sirve como referencia para buscar el tipo MIME canónico de una extensión de archivo concreta, cubriendo más de 100 formatos comunes en ocho categorías.
- Estructura RFC 2046: tipo/subtipo — el tipo indica la categoría general del contenido y el subtipo el formato exacto; los parámetros opcionales siguen tras un punto y coma (text/html; charset=utf-8) y son insensibles a mayúsculas según la especificación, aunque por convención se escriben en minúsculas.
- Registro IANA (RFC 6838): los nuevos tipos de medios requieren un documento de especificación, una sección de consideraciones de seguridad y notas de interoperabilidad; el proceso de revisión garantiza que los tipos estén bien documentados y se eviten conflictos antes de entrar en el registro.
- Cabecera HTTP Content-Type: el servidor declara el tipo MIME del cuerpo de la respuesta; los navegadores lo usan para seleccionar el renderizador adecuado (analizador HTML, decodificador de imágenes, visor de PDF) o activar una descarga — un Content-Type incorrecto es la causa más frecuente de errores donde 'el archivo se descarga en lugar de mostrarse'.
- Content sniffing y X-Content-Type-Options: cuando Content-Type falta o es genérico, los navegadores pueden inspeccionar los magic bytes para adivinar el formato; X-Content-Type-Options: nosniff desactiva este comportamiento y exige una coincidencia exacta de Content-Type, lo cual es una buena práctica de seguridad.
- application/octet-stream: el tipo genérico de respaldo para binarios — los navegadores lo tratan como un flujo opaco y activan una descarga, convirtiéndolo en la opción más segura por defecto cuando el servidor no puede determinar el formato, pero impide la vista previa en el navegador de contenido que de otro modo sería visible.
- Validación de subida de archivos: el atributo accept del input filtra el selector de archivos en el cliente, pero la validación en el servidor debe comprobar tanto el Content-Type declarado como los magic bytes del archivo; una discrepancia entre extensión, tipo MIME y firma de archivo es una señal de alerta ante subidas maliciosas.
- Tipos específicos de fabricantes y experimentales: la convención del prefijo x- (application/x-tar, video/x-matroska) es anterior al proceso formal de registro; RFC 6648 recomienda migrar estos tipos a registros IANA adecuados siempre que sea posible, pero muchos siguen en uso generalizado.
Ejemplos
Configuración de mime.types en Nginx
types {
text/html html htm;
image/jpeg jpg jpeg;
application/pdf pdf;
application/javascript js;
}
Nota: cada línea asocia un tipo MIME con una o más extensiones de archivo; Nginx envía el tipo en el encabezado Content-Type
IANA: https://www.iana.org/assignments/media-types/ mantiene el registro oficialEncabezado de respuesta HTTP Content-Type
Content-Type: application/json; charset=utf-8
Nota: charset es opcional pero recomendado para text/* y application/json; los clientes lo usan para decodificar el cuerpo correctamente
RFC: la sección 3.1.1.5 del RFC 7231 define la semántica del encabezado Content-Type
MDN: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-TypeConstructor Blob del navegador
const blob = new Blob([data], { type: 'application/pdf' });
const url = URL.createObjectURL(blob);
Nota: el type se convierte en el Content-Type cuando el blob se descarga o se sube posteriormente; elige un subtipo específico para evitar application/octet-stream
MDN: https://developer.mozilla.org/en-US/docs/Web/API/Blob/Blob documenta el parámetro typeTipos MIME comunes por categoría
Texto: text/plain, text/html, text/css, text/javascript, text/markdown
Imagen: image/jpeg, image/png, image/gif, image/webp, image/svg+xml
Audio: audio/mpeg, audio/wav, audio/ogg, audio/aac
Video: video/mp4, video/webm, video/ogg
Aplicación: application/json, application/pdf, application/xml, application/zip
IANA categoriza estos tipos en el registro de Media Types bajo nombres de tipo de nivel superiorPreguntas frecuentes
¿Qué es un tipo MIME y por qué importa?
Un tipo MIME (Multipurpose Internet Mail Extensions, también llamado tipo de medio) es una etiqueta corta como text/html, image/png o application/json que indica al software receptor cómo interpretar un flujo de bytes. Navegadores, clientes de correo, formularios de carga y APIs lo usan para decidir si renderizar, descargar, analizar o rechazar el contenido.
¿En qué se diferencia el tipo MIME de la extensión de archivo?
La extensión es parte del nombre del archivo y es una mera convención de nomenclatura. El tipo MIME se envía por la red en la cabecera Content-Type. Suelen ser coherentes (.png ↔ image/png), pero un servidor puede servir cualquier extensión con cualquier tipo MIME, y los navegadores confían mucho más en la cabecera que en la extensión. Mantenerlas alineadas es buena higiene; basar la seguridad en la extensión es un error.
¿Qué significa application/octet-stream?
Es el tipo MIME genérico para 'datos binarios arbitrarios'. Los navegadores que lo reciben ofrecen una descarga en lugar de intentar renderizar el contenido. Los servidores recurren a él cuando no pueden identificar el formato, lo que suele significar un mapeo MIME ausente o mal configurado. Sustitúyelo por el tipo específico correcto siempre que puedas.
¿Puedo confiar en Content-Type para validar archivos subidos?
Por sí solo, no. Cualquiera puede declarar image/png al subir un ejecutable. Inspecciona siempre los bytes reales (números mágicos, cabecera PNG 89 50 4E 47, cabecera PDF %PDF-, cabecera ZIP PK), comprueba la extensión, aplica una lista de permitidos en el servidor y limita el tamaño del archivo. El MIME que aporta el navegador en las subidas es una pista, no una prueba.
¿Por qué una descarga guarda con un nombre o extensión incorrectos?
Los navegadores eligen el nombre guardado a partir de la cabecera Content-Disposition, la ruta de la URL y el tipo MIME, en ese orden. Si el servidor devuelve text/html para una descarga PDF, el navegador puede guardarla con .html. Define Content-Disposition: attachment; filename="name.pdf" y el tipo MIME application/pdf correcto para evitar sorpresas.
¿Cómo encuentro el tipo MIME adecuado para un formato raro o personalizado?
Consulta primero el registro de tipos de medios de la IANA (iana.org/assignments/media-types). Para formatos no registrados o específicos de un proveedor, la convención es application/vnd.* o application/x-* (por ejemplo, application/vnd.api+json, application/x-7z-compressed). Usa la coincidencia estándar más cercana antes de inventar uno nuevo.
¿Por qué .json y .js muestran tipos MIME distintos?
JSON son datos y usa application/json. JavaScript es código ejecutable y se sirve como text/javascript o application/javascript (la RFC 9239 hizo de text/javascript el recomendado). Confundirlos importa: una etiqueta script se negará a ejecutar application/json, y algunos servidores rechazan application/javascript cuando solo aceptan la variante text.