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