Shared Brotli это новый формат сжатия контента для HTTP.
Функциональность поддерживается в Chrome v130+ (выпущен 15 октября 2024)
Данное демо показывает, какой профит можно получить, если использовать Shared Brotli вместо обычного Brotli.
При клике на размер, открывается страница с соответствующим сжатием.
Запрос | Размер Brotli | Размер Shared Brotli * | Размер SDCH ** | Размер без сжатия |
---|
* Для сжатия страниц использовался словарь, который используется для сжатия SDCH в поиске.
** Для вычисления размера SDCH совершался отдельный запрос к поиску, в котором мог быть другой состав колдунщиков. Так же на поиске страницы сжимаются частями (pre-search, inter-search, post-search), а в примерах страницы сжимались целиком, что дает лучшую степень сжатия.
Как работает shared brotli:
Link: </dictionary>; rel="compression-dictionary"где /dictionary это адрес словаря.
Use-As-Dictionary: match="/pages/*"Это значит, что словарь нужно применять ко всем страницам, которые соответствуют маске /pages/*
Available-Dictionary: :hash:И в списке доступных кодировок появится dcb – Dictionary Compressed Brotli.
Accept-Encoding: gzip, deflate, br, zstd, dcb, dcz
Content-Encoding: dcb
Content-Dictionary: :hash:
Посмотреть, как сжатие работает в браузере можно по ссылкам: [Brotli] | [Shared Brotli]
* Дата относительно времени генерации демки.
** В качестве словаря использовались те же файлы недельной давности.
Исходный код примеров доступен в аркадии: junk/shlenskiy/shared-brotli-demo