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