API Cross-Origin Storage : ne plus télécharger les fichiers deux fois

L'API Cross-Origin Storage pourrait permettre aux navigateurs de partager un modèle d'IA de 33 Go entre deux sites, réduisant ainsi les données téléchargées de 66 Go à 33 Go.

Auparavant, les navigateurs permettaient à n'importe quel site de réutiliser un fichier déjà récupéré par un autre site. Si vous chargez le même bundle React depuis un CDN sur deux pages, le navigateur sert la copie mise en cache la seconde fois. Une série de changements axés sur la confidentialité a mis fin à cette commodité : les navigateurs partitionnent désormais les caches par site, de sorte que même des URL identiques sont stockées séparément pour chaque origine. Le résultat est un trafic dupliqué pour chaque ressource volumineuse apparaissant sur plus d'un site.

Pourquoi le problème du téléchargement en double est crucial aujourd'hui

Le gaspillage est visible avec de petits fichiers — polices web ou quelques mégaoctets de JavaScript — mais il explose lorsque la ressource est un modèle d'IA de plusieurs gigaoctets ou un module WebAssembly.

Comment fonctionne l'API Cross-Origin Storage (COS)

La proposition remplace la recherche basée sur l'URL par une recherche basée sur le contenu. Un site fournit un hash SHA-256 du fichier qu'il souhaite obtenir. Le navigateur vérifie dans son stockage local si ce hash exact est présent, quelle que soit l'origine qui l'a initialement récupéré. Si le fichier est présent, le navigateur le transmet ; sinon, il récupère le fichier sur le réseau et le stocke sous ce hash pour une réutilisation cross-origin ultérieure.

  • Identification par hash. Le hash représente de manière unique les octets du fichier, et non son emplacement.
  • Accès cross-origin. Tout site connaissant le hash peut demander le fichier, même s'il provient d'ailleurs.
  • Partage du cache local. La même copie physique répond à plusieurs requêtes.

L'API est délibérément restreinte : elle ne remplace pas les API Cache ou IndexedDB existantes. Celles-ci restent les outils de stockage à usage général ; COS est un raccourci à usage unique pour les blobs volumineux et identiques.

Garanties de confidentialité intégrées à la conception

Permettre aux sites de sonder le cache d'un utilisateur pourrait réintroduire les vecteurs de suivi que le partitionnement des caches était censé empêcher. COS bloque ce risque grâce à trois règles :

  1. Pas d'énumération. Les scripts ne peuvent pas demander « quels hashs possédez-vous ? » — le stockage est opaque.
  2. Exigence de hash connu. Un site ne peut demander un fichier que s'il connaît déjà le hash exact. Le sondage aléatoire est impossible sans connaissance préalable.
  3. Seuil de popularité pour l'accès global. Un fichier doit être suffisamment commun — c'est-à-dire « anonyme » — avant qu'une origine différente puisse le récupérer. Les fichiers rares restent isolés à l'origine qui les a téléchargés en premier.

Ces limites permettent à l'API de rester utile pour les ressources réellement partagées, tout en l'empêchant de devenir un canal auxiliaire pour le fingerprinting.

À surveiller ensuite

L'API Cross-Origin Storage offre une solution simple à un problème qui s'est accentué avec l'apparition de ressources massives dans le navigateur. La question de savoir si la communauté web pourra équilibrer l'efficacité de la bande passante et les garanties de confidentialité qui ont motivé le partitionnement des caches déterminera si l'idée dépasse le stade de projet. Si tel est le cas, les futurs navigateurs pourraient vous permettre de télécharger une seule fois un modèle d'IA de plus de 30 gigaoctets et de le réutiliser partout — économisant ainsi du temps, des données et de l'énergie.