Нам только что удалось заставить GZIP работать в IIS, добавив тип
приложение/grpc-web
Внутри части httpCompression IIS. Это правильно устанавливает для Content-Encoding значение gzip, и мы видим меньший объем передачи байтов. Однако в ASP.NET мы увидели, что содержимое данных можно также сжать следующим образом:
options.ResponseCompressionLevel = System.IO.Compression.CompressionLevel.Optimal;
options.ResponseCompressionAlgorithm = "gzip";
Какой способ наиболее эффективен с точки зрения размера данных? Или это будет эквивалентно настройке gzip, как указано выше? Одним из преимуществ использования IIS gzip является то, что содержимое можно четко видеть в консоли разработчика. При использовании gzip ASP.NET содержимое также сжимается в консоли разработчика.
Насколько я знаю, вам, возможно, придется проанализировать их плюсы и минусы и сделать свой собственный выбор, исходя из ваших требований.
ASP.NET gzip: повышенная гибкость (например, использование разных методов сжатия для разных сценариев). Но это определенно увеличит сложность кода приложения и повлияет на его общую производительность.
IIS gzip: использование выделенного пула потоков обычно приводит к повышению производительности, поскольку позволяет лучше использовать ресурсы сервера и сокращает объем избыточной работы по настройке. Но ему не хватает гибкости, как упоминалось выше.
Таким образом, производительность сжатия конфигурации IIS обычно будет лучше, я рекомендую вам реализовать это через конфигурацию IIS. Но в зависимости от сложности вашего приложения или необходимости особых требований настройка с помощью кода также является допустимым вариантом, выбор которого зависит от вас.
Вы уже довольно хорошо расписали плюсы и минусы. Вам следует решить, что для вас важно. А если вам важна скорость, профилируйте ее! Хотя я сомневаюсь, что разница будет существенной.