对 Storage Access API 的 HTTP 标头支持

Natalia Markoborodova
Natalia Markoborodova

在成功完成源试用后,我们将在 Chrome 133 中发布存储空间访问权限标头 (SAH)。

什么是存储访问权限标头?

存储空间访问标头是新的 HTTP 标头,可让嵌入式内容(例如社交媒体 widget、日历、互动工具和图片)检查是否可以访问未分区的 Cookie。以前,只有使用 JavaScript 才能实现这一点。新的 Sec-Fetch-Storage-Access 请求标头和 Activate-Storage-Access 响应标头可提升依赖于嵌入式内容的网站的性能和用户体验,并支持加载非 iframe 资源。如需了解实现细节,请参阅文档

请求标头

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

当用户访问嵌入了跨站内容的网页时,浏览器会自动在可能需要凭据(例如 Cookie)的跨站请求中添加 Sec-Fetch-Storage-Access 标头。此标头表示嵌入内容的 Cookie 访问权限状态,可具有以下值:

  • none:嵌入内容没有 storage-access 权限,因此无法访问未分区的 Cookie。

  • inactive:嵌入内容具有 storage-access 权限,但尚未选择在当前上下文中使用该权限。嵌入内容没有未分区 Cookie 访问权限。

  • active:嵌入具有未分区的 Cookie 访问权限。此值将包含在任何有权访问未分区 Cookie 的跨源请求中。

响应标头

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

Activate-Storage-Access 标头指示浏览器重试包含 Cookie 的请求,或在激活 Storage Access API (SAA) 的情况下直接加载资源。标头可以具有以下值:

  • load:指示浏览器向嵌入方授予对所请求资源未分区 Cookie 的访问权限。包含此标头相当于在 storage-access 权限已授予的情况下调用 document.requestStorageAccess()。系统不会向用户显示其他提示。

  • retry:服务器响应,指示浏览器应激活存储空间访问权限,然后重试请求。

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

主要优点

存储访问标头是一种推荐的、性能更高的使用存储访问 API (SAA) 的方式。总而言之,此变更带来了多项改进:

  • 支持非 iframe 嵌入:可为更多资源启用 SAA。
  • 减少网络使用量:减少请求次数并减小载荷大小。
  • 降低 CPU 使用量:减少 JavaScript 处理。
  • 改进的用户体验:消除了干扰性的中间加载。

更新解决方案

使用“存储空间访问权限标头”功能时,您可能需要在以下两种情况下更新代码:

  • 您使用 SAA,并希望通过为后续 storage-access 请求使用标头逻辑来提高性能。
  • 您有验证或逻辑取决于请求中是否包含 Origin 标头。

请参阅我们的文档,了解如何在解决方案中使用存储空间访问标头。

互动和分享反馈

如果您有任何反馈或遇到任何问题,可以提交问题。您还可以通过 GitHub 说明详细了解存储空间访问权限标头。