Cross Origin Storage API: Przestań pobierać pliki dwukrotnie
Cross Origin Storage API może pozwolić przeglądarkom na współdzielenie 33-gigabajtowego modelu AI między dwiema witrynami, co zmniejszy ilość pobieranych danych z 66 GB do 33 GB.
Dawniej przeglądarki pozwalały dowolnej witrynie na ponowne wykorzystanie pliku, który został już pobrany przez inną stronę. Jeśli załadujesz ten sam pakiet React z sieci CDN na dwóch stronach, przeglądarka przy drugim podejściu poda kopię z pamięci podręcznej. Seria zmian skoncentrowanych na prywatności zepsuła tę wygodę: przeglądarki partycjonują teraz pamięć podręczną według witryn, więc nawet identyczne adresy URL są przechowywane oddzielnie dla każdego źródła (origin). Skutkiem tego jest duplikowanie ruchu dla każdego dużego zasobu, który pojawia się na więcej niż jednej stronie.
Dlaczego problem duplikowania pobierania jest teraz istotny
Marnotrawstwo jest widoczne przy małych plikach – czcionkach internetowych czy kilku megabajtach JavaScriptu – ale staje się ogromne, gdy zasobem jest wielogigabajtowy model AI lub moduł WebAssembly.
Jak działa Cross-Origin Storage (COS) API
Propozycja polega na zastąpieniu wyszukiwania opartego na adresach URL wyszukiwaniem opartym na zawartości (content-addressed). Witryna podaje skrót SHA-256 pliku, którego potrzebuje. Przeglądarka sprawdza w lokalnym magazynie, czy istnieje dokładnie ten skrót, niezależnie od tego, które źródło pierwotnie go pobrało. Jeśli plik jest obecny, przeglądarka go przekazuje; jeśli nie, pobiera plik z sieci i przechowuje go pod tym skrótem do przyszłego współdzielenia między witrynami.
- Identyfikacja za pomocą skrótu. Skrót w unikalny sposób reprezentuje bajty pliku, a nie jego lokalizację.
- Dostęp między witrynami (cross-origin). Każda witryna, która zna skrót, może poprosić o plik, nawet jeśli pochodzi on z innego źródła.
- Współdzielenie lokalnej pamięci podręcznej. Ta sama fizyczna kopia zaspokaja wiele żądań.
API jest celowo wąskie: nie zastępuje istniejącego Cache API ani IndexedDB. Te pozostają narzędziami do ogólnego przeznaczenia; COS to jednofunkcyjny skrót dla dużych, identycznych obiektów typu blob.
Mechanizmy ochrony prywatności wbudowane w projekt
Pozwolenie witrynom na sprawdzanie pamięci podręcznej użytkownika mogłoby przywrócić wektory śledzenia, które partycjonowanie pamięci podręcznej miało powstrzymać. COS blokuje to ryzyko za pomocą trzech zasad:
- Brak możliwości enumeracji. Skrypty nie mogą pytać: „jakie skróty posiadasz?” – magazyn jest nieprzejrzysty (opaque).
- Wymóg znajomości skrótu. Witryna może poprosić o plik tylko wtedy, gdy zna już jego dokładny skrót. Losowe sprawdzanie jest niemożliwe bez wcześniejszej wiedzy.
- Próg popularności dla globalnego dostępu. Plik musi być wystarczająco powszechny – tj. „anonimowy” – zanim inne źródło będzie mogło go pobrać. Rzadkie pliki pozostają odizolowane dla źródła, które pobrało je jako pierwsze.
Ograniczenia te sprawiają, że API pozostaje użyteczne dla prawdziwie współdzielonych zasobów, jednocześnie zapobiegając przekształceniu się w kanał boczny (side channel) do fingerprintingu.
Na co warto zwrócić uwagę
Cross Origin Storage API oferuje proste rozwiązanie problemu, który narasta wraz z coraz większymi zasobami w przeglądarkach. To, czy społeczność webowa zdoła zrównoważyć wydajność pasma z gwarancjami prywatności, które skłoniły do partycjonowania pamięci podręcznej, zdecyduje o tym, czy pomysł wyjdzie poza fazę projektu. Jeśli tak się stanie, przyszłe przeglądarki mogą pozwolić na pobranie ponad 30-gigabajtowego modelu AI tylko raz i ponowne wykorzystanie go wszędzie – oszczędzając czas, dane i energię.
