Brotli — это новый алгоритм сжатия, разработанный Google. Меньший размер отклика сжатия позволяет лучше использовать пространство и быстрее загружать страницу. Во многих случаях Brotli превосходит gzip. Преимущества: Для типичных веб-ресурсов, таких как css, html, js, Brotli превосходит gzip на 17-25%. Плотность Brotli -11 по сравнению с gzip-9: html (многоязычный корпус): сохраните 25% js (самые высокие 10k Alexa): сохраняйте 17% уменьшения js (топ-10к Alexa): сохраняйте 17% CSS (топ-10к Alexa): 20% экономии.
Введение в алгоритм Бротли
Brotli был изначально выпущен в 2015 году для офлайн-сжатия веб-шрифтов. Программисты Google выпустили улучшенную версию Brotli в сентябре 2015 года с особым акцентом на сжатие HTTP. Кодировщик частично переписан для улучшения степени сжатия, и энкодер, и декодер увеличены для увеличения скорости, а API потоковой передачи был улучшен для повышения качества сжатия. Новая версия также демонстрирует улучшение производительности между платформами и уменьшение необходимости памяти для декодирования.
В отличие от распространённых универсальных алгоритмов сжатия, Brotli использует заранее определённый словарь объёмом 120 килобайт. Словарь содержит более 13 000 часто используемых слов, фраз и других подстрок из большого корпуса текстовых и HTML-документов. Предопределённые алгоритмы могут увеличивать плотность сжатия меньших файлов.
Использование Brotli вместо сжатия текстовых файлов обычно увеличивает плотность сжатия на 20%, при этом скорость сжатия и декомпрессии примерно одинакова. Тип кодирования содержимого для сжатия потоков с использованием Brotli был предложен с использованием «br».
Бротли против Гзипа
При оценке алгоритмов сжатия мы сосредотачиваемся на двух индикаторах: скорости сжатия и скорости сжатия. Как видно на рисунке выше, независимо от того, какой из 9 уровней сжатия GZIP используется ниже, его степень сжатия ниже, чем у brotli (по сравнению с gzip, его также можно настроить на 10), а скорость сжатия тоже ниже.
Преимущество Brotli: Brotli превосходит gzip на 17-25% для типичных веб-ресурсов, таких как css, html, js. Плотность Brotli -11 по сравнению с gzip-9: html (многоязычный корпус): сохранять 25% js (самые высокие 10 тысяч Alexa): сохранять 17% уменьшения js (топ-10к Alexa): сохранять 17% CSS (топ-10к Alexa): 20% экономия
asp.net ядро поддерживает Brotli
Значение заголовка Accept-Encoding
Конфигурация кода
Следующий код демонстрирует, как включить адаптивное сжатие промежуточного ПО для стандартных MIME-типов и провайдеров сжатия (Brotli и Gzip):
Заметка:
- приложение. В приложении должна быть включена функция UseResponseCompression. Используйте Mvc перед звонком.
- Используйте такие инструменты, как Fiddler, Firebug или Postman, чтобы настроить заголовок запроса Accept-Encoding и изучите заголовок, размер и основу ответа.
По умолчанию провайдер сжатия Brotli добавляется в массив провайдера сжатия вместе с провайдером сжатия Gzip. Когда клиент поддерживает формат сжатых данных Brotli, по умолчанию компрессия Brotli. Если клиент не поддерживает Brotli, сжатие по умолчанию становится Gzip, а клиент поддерживает Gzip.
Тест на сжатие BR
Откройте инструмент для захвата пакетов Fiddler и используйте браузер для доступа к адресу нашего сайта, вы увидите следующее:
Заголовок запроса: Accept-Encoding: gzip, deflate, br
Заголовок ответа: Кодирование контента: br
При выполнении сжатия заголовок Content-Length удаляется, потому что содержимое тела меняется при сжатии ответа.
При выполнении сжатия заголовок Content-MD5 удаляется, так как содержимое тела изменилось, и хэш больше не является валидным.
Когда asp.net ядро включает https-функцию, Brotli не действует на сжатие html и json, но может сжимать js и css. (Возможно, длина символа слишком мала для сжатия, и её следует задать)
(Конец)
|