Поддержка HTTP-заголовков для API доступа к хранилищу

Наталья Маркобородова
Natalia Markoborodova

После успешного тестирования в исходном коде мы внедряем заголовки доступа к хранилищу (SAH) в Chrome версии 133.

Что такое заголовки доступа к хранилищу?

Заголовки доступа к хранилищу (Storage Access Headers) — это новые HTTP-заголовки, позволяющие встроенному контенту (например, виджетам социальных сетей, календарям, интерактивным инструментам и изображениям) проверять доступ к неразделённым файлам cookie. Ранее это было возможно только с помощью JavaScript . Новые заголовки запроса Sec-Fetch-Storage-Access и ответа Activate-Storage-Access улучшают производительность и удобство использования для веб-сайтов, использующих встроенный контент, и поддерживают загрузку ресурсов, не являющихся iframe. Подробности реализации см. в документации .

заголовок запроса

  Sec-Fetch-Storage-Access: <access-status>

Когда пользователь посещает страницу, содержащую встроенный контент, браузер автоматически включает заголовок Sec-Fetch-Storage-Access в межсайтовые запросы, которые могут требовать учетных данных (например, файлов cookie). Этот заголовок указывает на статус разрешения доступа к файлам cookie для встроенного контента и может принимать следующие значения:

  • none : Встроенный элемент не имеет разрешения storage-access и, следовательно, не имеет доступа к неразделённым файлам cookie.

  • inactive : Встроенный элемент имеет разрешение storage-access , но не дал согласия на его использование в текущем контексте. Встроенный элемент не имеет доступа к неразделенным файлам cookie.

  • active : Встроенный элемент имеет доступ к неразделенным файлам cookie. Это значение будет включено во все междоменные запросы, имеющие доступ к неразделенным файлам cookie.

Заголовки ответа

  Activate-Storage-Access: <retry-or-load>

Заголовок Activate-Storage-Access указывает браузеру либо повторить запрос с использованием cookie-файлов, либо загрузить ресурс напрямую с активированным API доступа к хранилищу (SAA). Заголовок может принимать следующие значения:

  • load : Указывает браузеру предоставить встраиваемому ресурсу доступ к неразделённым файлам cookie для запрошенного ресурса. Включение этого заголовка эквивалентно вызову document.requestStorageAccess() если разрешение storage-access было предоставлено. Пользователю не будет показано никаких дополнительных запросов.

  • retry : Сервер отвечает, что браузер должен активировать разрешение на доступ к хранилищу, а затем повторить запрос.

  Activate-Storage-Access: retry; allowed-origin="https://site.example"
  Activate-Storage-Access: retry; allowed-origin=*
  Activate-Storage-Access: load

Основные преимущества

Использование заголовков доступа к хранилищу (Storage Access Headers) — это рекомендуемый, более производительный способ применения API доступа к хранилищу (SAA). В целом, это изменение вносит ряд улучшений:

  • Поддержка встраивания контента, отличного от iframe: включает SAA для более широкого спектра ресурсов.
  • Снижение нагрузки на сеть: меньше запросов и меньший объем передаваемых данных.
  • Сниженное использование ЦП: Меньше обработки JavaScript.
  • Улучшен пользовательский опыт: устранены промежуточные загрузки, нарушающие работу системы.

Обновите ваше решение

При использовании функции заголовков доступа к хранилищу (Storage Access Headers) может возникнуть необходимость обновить код в двух случаях:

  • Вы используете SAA и хотите добиться повышения производительности за счет применения логики заголовков к последующим запросам storage-access .
  • У вас есть проверка или логика, которая зависит от того, включен ли заголовок Origin в запрос к вашему серверу.

Ознакомьтесь с нашей документацией , чтобы узнать, как использовать заголовки доступа к хранилищу (Storage Access Headers) в вашем решении.

Принимайте участие и делитесь отзывами.

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