Brotli — це новий алгоритм стиснення, розроблений Google. Менший розмір відгуку стиснення дозволяє краще використовувати простір і швидше завантажувати сторінку. У багатьох випадках Brotli перевершує gzip. Переваги: Для типових веб-ресурсів, таких як css, html, js, Brotli перевершує gzip на 17-25%. Щільність Brotli -11 порівняно з gzip-9: html (багатомовний корпус): збереження 25% js (найвищі 10k: Alexa): збереження 17% зменшення js (топ-10k Alexa): збереження 17% CSS (топ-10k: 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 (найвищі 10k: Alexa): збереження 17% зменшення js (топ-10k: Alexa): збереження 17% css (топ-10k: 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
Заголовок відповіді: Content-Encoding: br
Під час стиснення заголовок Content-Length видаляється, оскільки вміст тіла змінюється при стисненні відгуку.
Під час стиснення заголовок Content-MD5 видаляється, оскільки вміст тіла змінився, і хеш більше не є дійсним.
Коли asp.net ядро вмикає https-функцію, Brotli не діє на стиснення html і json, але може стискати js і css. (Можливо, довжина символу занадто мала для стиснення, і її слід встановити)
(Кінець)
|