¿Cuál es el tipo MIME de los archivos .svg?
El tipo MIME (tipo de medio) de los archivos de imagen SVG con extensión .svg es image/svg+xml. SVG es texto, así que gzip/Brotli lo reducen muy bien. Servir archivos SVG subidos por usuarios desde tu dominio principal es arriesgado, porque SVG puede contener scripts: usa un dominio separado o sanea los archivos subidos.
Cabecera Content-Type
Content-Type: image/svg+xml; charset=utf-8
Los tipos basados en texto deben incluir un charset para que el navegador decodifique los caracteres correctamente.
Configuración del servidor
| Servidor | Configuración |
|---|---|
Nginx (mime.types o types {}) | image/svg+xml svg; |
Apache (.htaccess) | AddType image/svg+xml .svg |
IIS (web.config) | <mimeMap fileExtension=".svg" mimeType="image/svg+xml" /> |
| Node.js / Express | res.type('svg') o res.setHeader('Content-Type', 'image/svg+xml; charset=utf-8') |
| Amazon S3 | Establece Content-Type: image/svg+xml en el objeto (metadatos), o pasa --content-type image/svg+xml a aws s3 cp |
¿Deberían comprimirse los archivos .svg?
Sí. La imagen SVG es texto, así que activar gzip o Brotli para image/svg+xml normalmente reduce el tamaño de transferencia entre un 50 y un 80 %. Asegúrate de que la lista de compresión de tu servidor incluya este tipo; compruébalo con la prueba de compresión de sitios web.
Por qué importa el tipo MIME
Los navegadores deciden qué hacer con una respuesta (mostrarla, ejecutarla, reproducirla o descargarla) según la cabecera Content-Type, no según la extensión del archivo. Con X-Content-Type-Options: nosniff, un tipo incorrecto hace que las hojas de estilo y los scripts se bloqueen directamente. En las subidas de archivos, nunca confíes en el tipo que envía el cliente; comprueba el contenido del archivo (sus bytes mágicos) en el servidor.
Búsqueda de tipos MIME
Busca todas las extensiones de archivo y tipos MIME comunes, con cabeceras Content-Type listas para copiar.
Preguntas frecuentes
¿Cuál es el tipo MIME de .svg?
image/svg+xml.¿Cómo establezco el Content-Type de .svg en Nginx?
image/svg+xml svg; aparezca en el bloque types (normalmente en /etc/nginx/mime.types) y recarga Nginx.