UPD. Сжатие данных теперь доступно и для десктопной версии: официальное расширение.
Совсем недавно ХРОМ.РФ рассказал вам о том, что команда разработчиков Google Chrome для Android решила встроить в браузер сжатие данных через свой промежуточный сервер. Экспериментальная поддержка этого функционала уже доступна в Google Chrome 26 Beta для Android, которая была выпущена сегодня.
Реализация
Основная оптимизация, которая и позволяет нам сэкономить трафик и увеличить скорость, выполняется на стороне сервера Google. Когда функция сжатия включена, Google Chrome устанавливает выделенное соединение по протоколу SPDY со специальным сервером Google. И весь трафки с HTTP ресурсов будет идти через это соединение.
Все данные, отправляемые нам сайтами через HTTP проходят через этот SPDY Proxy сервер и оптимизируются. В то время, как все данные от защищенных сайтов (HTTPS) будут идти к нам напрямую.
При этом оптимизация контента происходит за счет использования открытой библиотеки PageSpeed, которую уже давно продвигают в Google (вот мод для Apache, а вот и расширение для разработчиков). А также использование протокола SPDY позволяет увеличить скорость соединения.
Кстати, оценить экономию трафика тоже достаточно легко. Смотрим скриншот и понимает на какую страницу нужно зайти, чтобы увидеть эффект.
Увеличение скорости соединения
Как уже было сказано выше, для соединения с сервером Google используется протокол SPDY, который в отличие от стандартного протокола позволяет осуществлять передачу нескольких запросов и ответов в рамках одного TCP соединения. А это экономит время, а значит увеличивает скорость. Есть экспериментальные данные о том, что в ряде случаев это ускоряет загрузку страниц аж на 23%!
Есть и некоторые другие плюсы от использования протокола SPDY:
- Т.к. к DNS серверам теперь обращается не ваш телефон, а сервер Google, то и тут получаем экономию времени.
- Т.к. общее количество сетевых соединений уменьшается, то это экономит заряд аккумулятора вашего смартфона.
Сжатие контента
А теперь уже рассмотрим сжатие контента на сервере за счет использования PageSpeed.
1. Прежде всего, оптимизация всех изображений за счет перекодирования в формат WebP, который в ряде случаев позволяет добиться экономии в 60%.
2. Не меньшее значение имеет и оптимизация HTML, Javascript и CSS. Код сжимается за счет удаления пустых мест, комментариев, метаданных (которые не нужны для рендеринга страницы) и применения технологии gzip.
Итог
В результате применения SPDY Proxy сервера удается не только сжать содержимое страниц, но и ускорить и даже зашифровать передачу уже сжатых данных. Отличный комплексный подход!
Как включить эксперимент?
Достаточно включить эксперимент "Enable Data Compression Proxy" на специальной странице chrome:flags.
SPDY Proxy против Opera Turbo
Opera 14 beta и Google Chrome 26 beta доступны для Android. И там и там есть режим сжатия и ускорения данных. Статистика доступна и там и тут. Так что предлагаю всем желающим начать тестирование и сравнение технологий. Что жмет лучше? Что быстрее?