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