Какой MIME-тип у файлов .xml?
MIME-тип (медиатип) для XML-документов с расширением .xml — application/xml. Также можно встретить text/xml. text/xml тоже широко используется. При application/xml кодировка берётся из XML-декларации, а не по умолчанию US-ASCII.
Заголовок Content-Type
Content-Type: application/xml; charset=utf-8
Текстовые типы должны включать charset, чтобы браузер корректно декодировал символы.
Настройка сервера
| Сервер | Конфигурация |
|---|---|
Nginx (mime.types или types {}) | application/xml xml; |
Apache (.htaccess) | AddType application/xml .xml |
IIS (web.config) | <mimeMap fileExtension=".xml" mimeType="application/xml" /> |
| Node.js / Express | res.type('xml') или res.setHeader('Content-Type', 'application/xml; charset=utf-8') |
| Amazon S3 | Задайте Content-Type: application/xml для объекта (метаданные) или передайте --content-type application/xml в aws s3 cp |
Нужно ли сжимать файлы .xml?
Да. XML-документ — это текст, поэтому включение gzip или Brotli для application/xml обычно уменьшает объём передаваемых данных на 50–80 %. Убедитесь, что список сжимаемых типов на вашем сервере включает этот тип — проверить это можно с помощью проверки сжатия сайта.
Зачем нужен MIME-тип
Браузеры решают, что делать с ответом — отобразить, выполнить, воспроизвести или скачать — по заголовку Content-Type, а не по расширению файла. При X-Content-Type-Options: nosniff неверный тип приводит к тому, что таблицы стилей и скрипты полностью блокируются. Для загрузки файлов никогда не доверяйте типу, который отправляет клиент; проверяйте содержимое файла (его магические байты) на сервере.
Поиск MIME-типов
Ищите среди всех распространённых расширений файлов и MIME-типов, с готовыми к копированию заголовками Content-Type.
Часто задаваемые вопросы
Какой MIME-тип у .xml?
application/xml. Встречается также вариант text/xml.Как задать Content-Type для .xml в Nginx?
application/xml xml; указан в блоке types (обычно в /etc/nginx/mime.types), и перезагрузите Nginx.