Guía rápida de tipos MIME

Los tipos MIME de páginas web, datos, imágenes, audio, vídeo, fuentes y archivos, con las reglas que causan errores de tipo y cómo comprobar las subidas.

Última revisión:

AdSense Placeholder
Slot: header_reference_page
En esta página

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-urlencoded por defecto y multipart/form-data cuando 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 +json o +xml cuando son versiones especializadas de esos formatos, como image/svg+xml o application/ld+json.
  • Los tipos de fabricante y experimentales empiezan por vnd. (por ejemplo application/vnd.ms-excel) o x-.

Problemas habituales

  • Una página se ve como texto plano. El servidor envió text/plain en lugar de text/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/html o application/octet-stream.
  • No carga una fuente o un archivo WebAssembly. Los servidores que no conocen .woff2 o .wasm pueden 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: nosniff para que confíen en su Content-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.

Pruebe estas herramientas

Véase también

  • Glosario Tipo MIME
    Un tipo MIME (tipo de medio) nombra el formato de un contenido como tipo/subtipo, como text/html o image/png.
  • Glosario UTF-8
    UTF-8 es la codificación Unicode dominante: escribe cada carácter con uno a cuatro bytes y es idéntica a ASCII en los primeros 128.
  • Guía Cómo funcionan las firmas de archivo (magic bytes)
    Cómo los primeros bytes de un archivo identifican su tipo real.
  • Guía rápida Guía rápida de cabeceras HTTP
    Cabeceras de petición y respuesta, directivas de Cache-Control, cabeceras de seguridad, atributos de cookie y cabeceras CORS.
AdSense Placeholder
Slot: footer_leaderboard