Data di pubblicazione: 10 novembre 2026
Le app web moderne spesso dipendono da asset di grandi dimensioni, come framework JavaScript, motori grafici e modelli di AI. Nonostante i siti utilizzino asset identici, ogni sito deve scaricare e archiviare la propria copia di ciascuno.
Con l'API Cross-Origin Storage proposta, in breve COS, il client specifica i contenuti che sta cercando in base al relativo hash e li recupera da qualsiasi URL per condividerli tra i siti designati (o tutti i siti). Ciò significa che una risorsa esatta e nota può essere condivisa tra i siti, indipendentemente dalla pubblicazione dell'asset. Questa proposta comporta vantaggi in termini di sicurezza e sfide in termini di protezione.
Casi d'uso
Abbiamo scritto ampiamente sull'importanza della memorizzazione nella cache dei modelli e della memorizzazione nella cache di qualsiasi asset con l'API Cache Storage. L'API Storage multiorigine fa un ulteriore passo avanti e potrebbe essere utile quando più siti web correlati (o meno) devono accedere alla stessa risorsa:
- Modelli di AI: i modelli come Gemma o le varianti di Llama pesano da circa un gigabyte a decine di gigabyte. L'archiviazione e il recupero di una copia tramite COS evitano download duplicati di grandi dimensioni. Questa è una delle motivazioni principali alla base della proposta.
- Moduli Wasm: framework come Flutter inviano file Wasm che vengono richiesti milioni di volte al giorno da migliaia di origini distinte, sempre identici a livello di byte.
- Librerie e framework JavaScript più diffusi: il raggruppamento del codice del fornitore separatamente e nella sua interezza (ad esempio la libreria React completa e non sottoposta a tree shaking) consente a più app di condividere una copia memorizzata nella cache tramite COS.
- Motori grafici: i giochi per browser basati su motori come Godot o Unity possono condividere il runtime del motore tramite COS e recuperare solo gli asset specifici del gioco sulla rete. I portali di giochi che ospitano molti casual game in origini o iframe diversi sono quelli che ne traggono i maggiori vantaggi.
- Caratteri web di grandi dimensioni: i caratteri delle icone, delle emoji e con un'ampia copertura Unicode vengono scaricati su un numero enorme di pagine. Condividerli una volta tramite COS aiuta sia le prestazioni che la sostenibilità.
Il flusso di base per l'utilizzo di COS
L'API COS introduce un metodo navigator.crossOriginStorage.getFileHandle() tramite il quale le app web archiviano e recuperano i file oltre i confini dell'origine, identificati da un hash di crittografia. La spiegazione contiene un esempio che mostra il flusso di base per l'utilizzo dell'API.
Prova subito
Esistono due modi per sperimentare con COS in questo momento:
- Installa un'estensione del browser dal Chrome Web Store, dai componenti aggiuntivi di Firefox o dal Safari App Store per eseguire il polyfill della superficie dell'API e di tutte le integrazioni. Puoi testare il flusso dell'API in qualsiasi browser. In alternativa, carica l'estensione non pacchettizzata dal relativo codice sorgente.
- Esperimento in Chromium: è disponibile un'implementazione sperimentale di Chromium. Scaricalo per macOS su Apple Silicon o Linux x86_64 da goo.gle/cos-chromium, quindi apri
about://flags, cerca "Cross-Origin Storage", impostalo su Enabled e riavvia quando richiesto. Questa build include un'integrazione di DevTools: trova Spazio di archiviazione multiorigine nella scheda Applicazione.
Interesse per l'ecosistema
COS è una proposta in fase iniziale e diversi progetti offrono già un supporto sperimentale, in genere dietro un flag di attivazione e con un livello di potenziamento progressivo:
- Emscripten condivide l'output Wasm generato.
- Flutter condivide il suo runtime Skia Wasm.
- Transformers.js condivide i pesi dei modelli e i runtime Wasm da cui dipendono.
- WebLLM condivide modelli e runtime.
- wllama condivide modelli di AI.
- Nuxt.js carica le dipendenze condivise dallo spazio di archiviazione multiorigine e gestisce un plug-in Vite COS.
- API Prompt Polyfill condivide i modelli di AI tra i suoi backend WebLLM e Transformers.js.
- Prebid.js ha una distribuzione CDN pronta per COS della libreria di header bidding.
Standardizzazione
Cross-Origin Storage è una proposta WICG in fase iniziale. Puoi leggere la revisione del design del TAG W3C iniziale.
- Le integrazioni host sono registrate presso i rispettivi organismi di standardizzazione:
- Attributo
crossoriginstoragee attributo di importazionecrossOriginStoragecon lo standard HTML WHATWG cross-origin-storage()con il CSS Working Group- Opzione di richiesta
crossOriginStoragecon lo standard di recupero
- Attributo
- Web Platform Tests cross-browser (in corso)
- Sono state richieste posizioni sugli standard da Mozilla e WebKit.
I feedback sull'API e sulla proposta sono ben accetti. Puoi segnalare problemi, mostrare supporto o aprire richieste di pull nel repository di archiviazione multiorigine.
Risorse
- Leggi la documentazione esplicativa dell'API Storage multiorigine e la bozza della specifica.
- Segui l'implementazione di COS in Chrome aggiungendo una stella al bug generale di archiviazione multiorigine e alle relative dipendenze.
- Consulta la spiegazione dell'elenco di hash pubblici.
- Compila il questionario sulla sicurezza e sulla privacy di COS.
- Esamina l'Intent to Prototype e la voce Chrome Platform Status.
Inoltre, dai un'occhiata a questi strumenti e demo:
- Awesome Cross-Origin Storage
- Istruzioni per l'utilizzo e l'origine dell'estensione Storage multiorigine
Letture aggiuntive di approfondimento
- Gaining security and privacy by partitioning the cache
- Sperimentazione con l'API Storage multiorigine proposta in Transformers.js
- HTTP cache partitioning: the same image, downloaded twice di Joan León
- API Storage multiorigine: smetti di scaricare due volte di Dennis Morello
- Volevo che il browser fornisse semplicemente jQuery. Cross-Origin Storage came for rescue di Ahmad Alfy
Talk e podcast
- ShopTalk Show 732: Thomas Steiner on New Cross-Origin Storage APIs (podcast)
- Working Draft 723: API Storage multiorigine (podcast in tedesco)
- WeAreDevelopers: What is Cross-Origin Storage (podcast)
- Archiviazione multiorigine: una cache condivisa per il web al JSNation US 2026