Supporto delle intestazioni HTTP per l'API Accesso allo spazio di archiviazione

Natalia Markoborodova
Natalia Markoborodova

Dopo una prova dell'origine riuscita, spediremo le intestazioni di accesso allo spazio di archiviazione (SAH) in Chrome 133.

Che cosa sono le intestazioni di accesso all'archiviazione?

Le intestazioni di accesso all'archiviazione sono nuove intestazioni HTTP che consentono ai contenuti incorporati (come widget di social media, calendari, strumenti interattivi e immagini) di verificare l'accesso ai cookie non partizionati. In precedenza, questo era possibile solo con JavaScript. La nuova intestazione della richiesta Sec-Fetch-Storage-Access e l'intestazione della risposta Activate-Storage-Access migliorano le prestazioni e l'esperienza utente per i siti web che si basano su contenuti incorporati e supportano il caricamento di risorse non iframe. Esplora la documentazione per i dettagli di implementazione.

Intestazione della richiesta

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

Quando un utente visita una pagina che incorpora contenuti cross-site, il browser include automaticamente l'intestazione Sec-Fetch-Storage-Access nelle richieste cross-site che potrebbero richiedere credenziali (come i cookie). Questa intestazione indica lo stato dell'autorizzazione di accesso ai cookie dell'incorporamento e può avere i seguenti valori:

  • none: l'incorporamento non dispone dell'autorizzazione storage-access e pertanto non ha accesso ai cookie non partizionati.

  • inactive: l'incorporamento dispone dell'autorizzazione storage-access, ma non ha attivato il suo utilizzo nel contesto attuale. L'incorporamento non ha accesso ai cookie non partizionati.

  • active: L'incorporamento ha accesso ai cookie non partizionati. Questo valore verrà incluso in tutte le richieste multiorigine che hanno accesso ai cookie non partizionati.

Intestazioni della risposta

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

L'intestazione Activate-Storage-Access indica al browser di riprovare a inviare la richiesta con i cookie o di caricare la risorsa direttamente con l'API Storage Access (SAA) attivata. L'intestazione può avere i seguenti valori:

  • load: indica al browser di concedere all'incorporatore l'accesso ai cookie non partizionati per la risorsa richiesta. L'inclusione di questa intestazione equivale a chiamare document.requestStorageAccess() se è stata concessa l'autorizzazione storage-access. All'utente non verrà mostrato alcun prompt aggiuntivo.

  • retry: il server risponde che il browser deve attivare l'autorizzazione di accesso all'archiviazione, quindi riprovare a inviare la richiesta.

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

Principali vantaggi

Le intestazioni Storage Access sono un modo consigliato e più efficiente per utilizzare l'API Storage Access (SAA). Nel complesso, questa modifica comporta diversi miglioramenti:

  • Supporto degli incorporamenti non iframe: consente l'accesso all'API Storage Access per una gamma più ampia di risorse.
  • Utilizzo ridotto della rete: meno richieste e payload più piccoli.
  • Utilizzo ridotto della CPU:meno elaborazione JavaScript.
  • Migliore UX:elimina i caricamenti intermedi che interrompono l'esperienza utente.

Aggiorna la soluzione

Con la funzionalità Storage Access Headers, esistono due casi in cui potresti voler aggiornare il codice:

  • Utilizzi gli annunci di ricerca adattabili e vuoi ottenere un rendimento migliore utilizzando la logica dell'intestazione per le richieste storage-access successive.
  • Hai una convalida o una logica che dipende dal fatto che l'intestazione Origin sia inclusa nella richiesta al tuo server.

Consulta la nostra documentazione per scoprire come utilizzare le intestazioni Storage Access nella tua soluzione.

Partecipare e condividere feedback

Se hai feedback o riscontri problemi, puoi segnalare un problema. Puoi anche scoprire di più sulle intestazioni di accesso allo spazio di archiviazione nella spiegazione di GitHub.