Разделы

Интернет Интернет-ПО Техника

Google сильно ускорит браузер Chrome, но опасно ограничит веб-разработчиков

Google хочет изменить поведение кеша BFCache в фирменном браузере Chrome таким образом, чтобы последний мог выгружать в него недавно посещенные пользователем страницы в интернете, несмотря на директиву разработчика сайта, частью которого страница является. Цель – ускорить повторную загрузку таких страниц. Перед массовым развертыванием компания протестирует нововведение, соберет массив данных и оценит его возможное влияние.

Попытка ускорить Chrome

Google планирует ускорить загрузку веб-страниц в своем фирменном браузере Chrome, внеся изменения в работу технологии BFCache, пишет Bleeping Computer.

Если предложенные разработчиками поправки будут приняты, то просмотренные пользователем страницы будут отправляться в кеш браузера даже в случае явного запрета со стороны создателя сайта. Это, с одной стороны, позволит мгновенно возвращаться к уже просмотренным страницам в интернете, с другой же, несет угрозу раскрытия конфиденциальных данных.

Что такое BFCache

BFCache (Back/Forward Cache) – это технология оптимизации работы браузера. Она обеспечивает сохранение полного содержимого веб-страницы (включая JavaScript-heap) в оперативной памяти в момент, когда пользователь ее покидает. Благодаря этому пользователь может вернуться к просмотру ранее закрытой страницы при помощи нажатия кнопки «Назад» практически моментально.

Google значительно ускорит Chrome, опасно ограничив веб-разработчиков

Поддержка BFCache реализована в таких браузерах как Firefox и Safari, как в их мобильных, так и десктопных версиях. В Chrome в экспериментальном режиме технология заработала, начиная с релиза 86, причем только на Android. С Chrome версии 96 BFcache по умолчанию активна на всех устройствах.

Разработчики веб-сайтов имеют возможность влиять на то, как браузер посетителя кеширует составляющие их страницы. Осуществляется это за счет использования HTTP-заголовка “Cache-control” в коде страницы.

В частности, веб-мастер может запретить браузеру кешировать страницу при помощи директивы “Cache-control: no-store” (CCNS). Это может быть полезно, когда страница содержит конфиденциальную информацию, для получения доступа к которой необходимы аутентификация или авторизация.

Запрет распространяется на и кеширования при помощи BFCache, что может негативно сказываться на скорости повторной загрузки страницы в тех случаях, когда пользователь решает вернуться на недавно посещенную страницу нажатием кнопки «Назад» или «Вперед», поскольку загрузка содержимого страницы из Сети занимает гораздо больше времени, нежели восстановление ее из быстрой оперативной памяти компьютера.

Сравнительно простой способ ускорения браузера

В Google считают, что интернет-страницы должны попадать в BFCache браузера вне зависимости от инструкций HTTP-заголовка, заданных веб-мастером, и намерены реализовать соответствующую модель поведения в своем обозревателе Chrome. Это позволит увеличить количество ситуаций, в которых пользователь имеет возможность быстро возвращаться к недавно посещенным веб-ресурсам, тем самым делая его работу более комфортной, отмечает Bleeping Computer.

Согласно статистике Google, каждый 10 переход на другую страницу в настольных версиях браузера Chrome и каждый пятый в мобильных осуществляется назад или вперед. Таким образом, предложенное корпорацией новшество можно ощутимо повлиять на пользовательский опыт в интернете.

Может потребоваться доработка сайтов

Проблема такого подхода заключается в том, что сайты могут быть не готовы к подобным изменениям в работе браузеров и потребуют доработки.

Так, при использовании технологии EventSource, которая позволяет поддерживать браузеру одностороннее соединение с сервером и получать от него данные, восстановление из BFCache может выдать конфиденциальные данные пользователя. К примеру, если некто заходит на свою страницу в социальной сети с ПК, к которому доступ имеет сразу несколько человек, то после нажатия кнопки «Выйти» (Logout), он не может быть уверен, что другие пользователи не увидят содержимое его личной страницы после нажатия кнопки «Назад». Подобный сценарий может быть исключен веб-разработчиком, к примеру, при помощи принудительной перезагрузки страницы.

Дмитрий Михеев, «АйТи Бастион» — Как обеспечить безопасность обмена данными
Импортонезависимость

В случаях с веб-ресурсами, не использующими механизмы немедленного обновления, и так возникает риск того, что пользователь получит доступ к неактуальным данным, ранее отправленных в BFCache, а предложенное Google изменение может лишь усугубить эту проблему.

Прежде чем внедрять предложенные изменение специалисты Google намерены «обкатать» их с использованием тестовых каналов, собрать достаточное количество данных и оценить потенциальные последствия.

Изменение подорвет доверие разработчиков?

Некоторые из разработчиков браузеров выразили сомнения по поводу целесообразности внесения подобных изменений.

По мнению участника проекта Opera Дэниела Брателла (Daniel Bratell), они способны ввести в заблуждение веб-разработчиков, которые уверены, что использование директивы CCNS гарантирует бесследное исчезновение конкретной страницы сразу после того, как она была закрыта.

Брателлу возражает инженер Google Фергал Дейли (Fergal Daly), по словам которого, все директивы типа “Cache-Control” в действительности предназначены для управления поведением исключительно HTTP-кеша, котрый является совершенно самостоятельной сущностью и не имеет отношения к BFCache.

Дмитрий Степанов