Частный прокси-сервер предварительной выборки в Chrome

Кэти Хемпениус
Katie Hempenius
Кенджи Бае
Kenji Baheux
Майкл Бюттнер
Michael Buettner

Ускорение отрисовки большого количества контента (LCP) с помощью предварительной загрузки между сайтами.

Начиная с Chrome 103 для Android, Chrome постепенно будет внедрять функцию частного прокси-сервера с предварительной загрузкой, чтобы ускорить исходящую навигацию из Google Search и других участвующих веб-сайтов в среднем на 30 %. Эта функция частного прокси-сервера предварительной выборки позволяет предварительно загружать контент из разных источников, не раскрывая информацию о пользователе целевому веб-сайту до тех пор, пока пользователь не перейдет по нему.

Прочтите дальше, чтобы узнать, как работает эта функция , как она может помочь значительно улучшить показатель крупнейшего контента (LCP) ваших сайтов или как веб-сайты-рефереры могут помочь своим пользователям достичь своих целей за счет ускорения навигации между сайтами.

Как работает частный прокси-сервер предварительной выборки

Безопасный канал связи

Эта функция использует прокси-сервер CONNECT для установления безопасного канала связи между Chrome и сервером, на котором размещен контент, который необходимо предварительно загрузить. Этот безопасный канал связи не позволяет прокси-серверу проверять передачу данных. Примечательно, что хотя Private Prefetch Proxy обязательно видит имя хоста, чтобы установить безопасный канал связи, он не видит ни полные URL-адреса, ни сами ресурсы.

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

Кроме того, поскольку безопасный канал связи полностью зашифрован, посредники не могут видеть ни имена хостов, ни содержимое предварительно загруженных сайтов. Наконец, прокси-сервер по своей сути не позволяет серверу назначения видеть IP-адрес пользователя.

Предотвращение идентификации пользователя

Помимо сетевых аспектов, подробно описанных ранее, нам также необходимо запретить серверам идентифицировать пользователя во время предварительной выборки по информации, ранее хранившейся на их устройстве. С этой целью Chrome в настоящее время ограничивает использование частного прокси-сервера предварительной выборки веб-сайтами, для которых у пользователя нет файлов cookie или других локальных данных. Ниже приведены ограничения для запросов предварительной выборки, выполняемых через частный прокси-сервер предварительной выборки:

  • Файлы cookie. Запросы предварительной выборки не могут содержать файлы cookie.
    • Если для ресурса существует файл cookie, Chrome выполнит выборку без учетных данных, но не будет использовать ответ (см. раздел «Кэширование» ниже).
    • Хотя ответы на запрос предварительной загрузки могут включать файлы cookie, эти файлы cookie будут сохранены только в том случае, если пользователь перейдет на предварительно загруженную страницу.
  • Снятие отпечатков пальцев: также корректируются другие поверхности, которые можно использовать для снятия отпечатков пальцев. Например, заголовок User-Agent отправленный прокси-сервером предварительной выборки, содержит лишь ограниченную информацию.

В будущем мы надеемся расширить частный прокси-сервер предварительной выборки, добавив в него ссылки с файлами cookie или локальным состоянием, сохраняя при этом те же характеристики конфиденциальности. Дополнительные сведения см. в разделе «Что дальше» .

Кэширование

Chrome будет предварительно выбирать ресурсы, даже если они уже находятся в кеше, но они не будут содержать никаких условных заголовков, таких как ETag или If-Modified-Since (они содержат значения, установленные сервером, которые можно использовать для отслеживания даже без файлов cookie). Эта предварительная выборка выполняется для предотвращения утечки состояния кэша клиента на предварительно загруженный веб-сайт. Кроме того, Chrome будет сохранять предварительно загруженный ресурс в кеш только в том случае, если пользователь решит перейти на предварительно загруженный веб-сайт.

Начало работы с частным прокси-сервером предварительной выборки

Для владельцев сайтов

От владельцев веб-сайтов не требуется никаких действий, чтобы начать использовать частный прокси-сервер предварительной выборки для ссылок, для которых у пользователя нет файлов cookie или локального состояния. Согласно нашим экспериментам, это значительная возможность для большинства веб-сайтов. Кроме того, всегда полезно произвести впечатление на новых или нечастых посетителей сверхбыстрой загрузкой. Судя по прошлым экспериментам, мы наблюдали ускорение отрисовки Largest Contentful Paint на 20–30 % при предварительной выборке навигации.

В будущем мы надеемся расширить эту функцию, включив в нее ссылки с файлами cookie или местным состоянием, сохранив при этом ее характеристики конфиденциальности. Проблема с файлами cookie заключается в том, что они могут использоваться для изменения пользовательского опыта трудно предсказуемым образом. Таким образом, владельцам веб-сайтов, скорее всего, придется согласиться или настроить свой сайт, чтобы воспользоваться преимуществами частного прокси-сервера предварительной выборки для ссылок с файлами cookie.

Конкретно, хотя запросы предварительной выборки останутся без учетных данных, веб-страница получит доступ к файлам cookie и другому локальному состоянию, когда пользователь перейдет на нее. Разработчики могут воспользоваться этим, чтобы вернуть персонализацию и изменения на основе файлов cookie или местного состояния. Или, возможно, разработчики также могут быть заинтересованы в объявлении определенных ресурсов, которые идеально подходят для предварительной выборки и использования «как есть», без файлов cookie (то есть ресурсов, которые не зависят ни от каких файлов cookie). Пожалуйста, ознакомьтесь с разделом «Что дальше» , чтобы узнать больше и сообщить наш план.

Геозависимый контент или услуги

Если ваш веб-сайт ведет себя по-разному (например, разный контент или выборочный доступ) на разных рынках в зависимости от IP-адреса пользователя, вы можете задаться вопросом, как обрабатывать запросы предварительной выборки частного прокси-сервера предварительной выборки. Важно знать, что частный прокси-сервер предварительной выборки работает на нескольких серверах, разбросанных по всему миру, и что IP-адрес прокси-сервера будет привязан к стране, из которой пользователь инициировал предварительную выборку.

Итак, учитывая это, вот что мы рекомендуем:

  1. Определите запросы предварительной выборки от частного прокси-сервера предварительной выборки по наличию Sec-Purpose: Prefetch; anonymous-client-ip HTTP-заголовок Sec-Purpose: Prefetch; anonymous-client-ip .
  2. Найдите геолокацию частного прокси-сервера предварительной выборки, выдавшего запрос, по его IP-адресу. См. этот ресурс для получения актуального списка развернутых географических регионов и соответствующих IP-адресов.
  3. Обслуживать ресурсы в соответствии с рынком, привязанным к данной конкретной геолокации.

Контроль дорожного движения

Из прошлых экспериментов мы знаем, что эта функция обычно приводит к менее чем 2% дополнительных запросов к основным ресурсам (например, HTML-документам). Тем не менее, если вы осторожны, вы можете использовать поле доли в совете по трафику, чтобы контролировать, какой объем трафика должен пропускать частный прокси-сервер предварительной выборки. Вы можете начать с небольшой доли, например 0,3 (то есть 30%), и постепенно увеличивать ее до 1,0 (то есть 100%), добавляя следующий JSON в файл /.well-known/traffic-advice , который необходимо обслуживать с помощью MIME-типа application/trafficadvice+json :

[{
  "user_agent": "prefetch-proxy",
  "fraction": 0.3
}]

Поле fraction представляет собой число с плавающей точкой от 0,0 (предварительная выборка вообще отсутствует) до 1,0 (проходит 100 % запросов предварительной выборки).

Также возможно полностью отключить это с помощью следующей конфигурации:

[{
  "user_agent": "prefetch-proxy",
  "disallow": true
}]

Файл /.well-known/traffic-advice извлекается прокси-сервером, а не клиентом, и кэшируется на прокси-сервере в соответствии с обычной семантикой HTTP-кеша. Для большей гибкости — например, внезапный пик интенсивного доступа — вы можете временно отклонить запросы предварительной выборки ( Sec-Purpose: prefetch;anonymous-client-ip ) с кодом состояния 503 и установив Cache-Control: no-store заголовок ответа. Вы также можете добавить заголовок Retry-After , чтобы сообщить Chrome, как долго ждать, прежде чем повторять запросы предварительной выборки.

Для владельцев реферальных сайтов

Если у вас есть веб-сайт с большим количеством ссылок на другие веб-сайты, вас может заинтересовать использование функции частного предварительной выборки для ускорения навигации между источниками. Вам нужно будет добавить правила спекуляции на свои страницы, чтобы Chrome знал, какую страницу, по вашему мнению, следует выполнить предварительную выборку через частный прокси-сервер предварительной выборки. Вот простой пример:

<script type="speculationrules">
{
  "prefetch": [
    "source": "list",
    "urls": ["https://example.com/index.html"],
    "requires": ["anonymous-client-ip-when-cross-origin"]
  ]
}
</script>

Что дальше?

Этот запуск — лишь первый шаг. Мы надеемся расширить и улучшить эту функцию на основе интереса и отзывов сообщества. Например, нам бы хотелось услышать отзывы о том, как расширить ссылки с файлами cookie и локальным состоянием таким образом, чтобы свести к минимуму трудности со стороны разработчиков, или о том, как сделать эту функцию более полезной для ссылающихся веб-сайтов.

Читать далее