Mime-types: обновление
Maxim Dounin
mdounin на mdounin.ru
Вт Ноя 21 19:43:08 UTC 2023
Hello!
On Mon, Nov 20, 2023 at 08:06:33AM +0300, izorkin на gmail.com wrote:
> Да, сложнее чем я думал...
> Как минимум, я бы хотел куда-нибудь включить этот минимальный список
> MIME-типов, чтобы корректно работало GZIP сжатие:
> https://github.com/NixOS/nixpkgs/blob/3f21a22b5aafefa1845dec6f4a378a8f53d8681c/nixos/modules/services/web-servers/nginx/default.nix#L35-L68
> Некоторых из них нету в пакете mailpcap, поэтому иногда возникают
> проблемы.
Gzip-сжатие работает корректно независимо от того, какие именно
типы файлов сказано жать. Самое плохо, что может случиться от
отсутствия MIME-типов - gzip-сжатие для этих файлов будет
выключено, и соответственно общая эффективность сжатия упадёт.
Имеет смысл обсуждать ситуации, когда среди ответов есть заметный
процент файлов какого-либо типа, который можно (и хотелось бы)
жать, и в то же время nginx не умеет распознавать MIME-тип для
этих файлов по расширению. То есть типичному web-сайту приходится
и конфигурировать gzip_types, и в добавок прописывать MIME-типы
через types.
На вскидку я в списке по ссылке вижу следующие типы, которых
(или аналогов для соответствующих расширений) нет в mime.types
nginx'а:
application/ld+json
application/manifest+json
application/rdf+xml
application/x-web-app-manifest+json
application/xliff+xml
font/collection
font/otf
font/ttf
text/cache-manifest
text/calendar
text/csv
text/markdown
text/vcard
text/vnd.rim.location.xloc
В целом кажется, что для типичного web-сайта доля ответов с
файлами таких типов должна быть около нуля, и соответственно с
точки зрения gzip-сжатия полезность добавления этих типов примерно
такая же.
Возможно, из этого списка стоит добавить
application/manifest+json, text/csv и text/markdown, но скорее из
общих соображений.
> Засада с javascript... Не явных проблем с заменой application/xml
> на text/xml случаем нету?
Сейчас в nginx'е используется text/xml, и каких-либо причин менять
тип не прослеживается.
В то же время, базовые вопросы при изменении, если вдруг его
делать, ровно такие же: подобное изменение может потребовать
изменения конфигов, и соответственно должно быть явно
документировано, а равно соответствующих изменений в коде, если
тип где-то используется в коде (text/xml - используется).
--
Maxim Dounin
http://mdounin.ru/
Подробная информация о списке рассылки nginx-ru