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