Какой MIME-тип у файлов .svg?
MIME-тип (тип медиа) для файлов SVG-изображение с расширением .svg — image/svg+xml. SVG — это текст, поэтому gzip и Brotli хорошо его уменьшают. Отдавать SVG, загруженный пользователями, с основного домена небезопасно, так как SVG может содержать скрипты — используйте отдельный домен или очищайте загружаемые файлы.
Заголовок Content-Type
Content-Type: image/svg+xml; charset=utf-8
Текстовые типы должны включать charset, чтобы браузер правильно декодировал символы.
Настройка сервера
| Сервер | Настройка |
|---|---|
Nginx (mime.types или 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') или res.setHeader('Content-Type', 'image/svg+xml; charset=utf-8') |
| Amazon S3 | Задайте Content-Type: image/svg+xml для объекта (метаданные) или передайте --content-type image/svg+xml в aws s3 cp |
Нужно ли сжимать файлы .svg?
Да. SVG-изображение — это текст, поэтому включение gzip или Brotli для image/svg+xml обычно экономит 50–80 % объёма передачи. Убедитесь, что в списке сжатия вашего сервера есть этот тип — проверить можно с помощью проверки сжатия сайта.
Зачем нужен MIME-тип
Браузер решает, что делать с ответом — отобразить, выполнить, воспроизвести или скачать — по заголовку Content-Type, а не по расширению файла. При X-Content-Type-Options: nosniff неверный тип приводит к тому, что таблицы стилей и скрипты полностью блокируются. Для загрузок никогда не доверяйте типу, отправленному клиентом; проверяйте содержимое файла (его магические байты) на сервере.
Поиск MIME-типов
Поиск по всем распространённым расширениям файлов и MIME-типам с готовыми заголовками Content-Type для копирования.
Часто задаваемые вопросы
Какой MIME-тип у .svg?
image/svg+xml.Как задать Content-Type для .svg в Nginx?
image/svg+xml svg; есть в блоке types (обычно в /etc/nginx/mime.types), и перезагрузите Nginx.