Cross Origin Storage API: הפסקת הורדת קבצים פעמיים

ה-Cross-Origin Storage API עשוי לאפשר לדפדפנים לשתף מודל AI בנפח 33 GB בין שני אתרים, ובכך לצמצם את כמות הנתונים שאתה מוריד מ-66 GB ל-33 GB.

בעבר, דפדפנים אפשרו לכל אתר להשתמש מחדש בקובץ שאתר אחר כבר הוריד. אם תטען את אותו React bundle מ-CDN בשני דפים שונים, הדפדפן יגיש את העותק השמור בזיכרון המטמון (cache) בפעם השנייה. סדרה של שינויים ממוקדי פרטיות שברה את הנוחות הזו: כעת דפדפנים מחלקים את הזיכרון המטמון לפי אתר (partitioning), כך שגם כתובות URL זהות נשמרות בנפרד עבור כל מקור (origin). התוצאה היא תעבורה כפולה עבור כל נכס (asset) גדול המופיע ביותר מאתר אחד.

למה בעיית ההורדה הכפולה חשובה כעת

הבזבוז בא לידי ביטוי בקבצים קטנים – גופנים (web fonts) או כמה מגה-בייט של JavaScript – אך הוא הופך למסיבי כאשר הנכס הוא מודל AI בנפח של מספר גיגה-בייט או מודול WebAssembly.

איך ה-Cross-Origin Storage (COS) API עובד

ההצעה מחליפה את החיפוש מבוסס ה-URL בחיפוש מבוסס תוכן (content-addressed). אתר מספק hash מסוג SHA-256 של הקובץ שהוא רוצה. הדפדפן בודק במאגר המקומי שלו אם קיים ה-hash המדויק הזה, ללא קשר למקור שהוריד אותו במקור. אם הקובץ קיים, הדפדפן מעביר אותו; אם לא, הוא מוריד את הקובץ מהרשת ושומר אותו תחת אותו hash לשימוש חוזר עתידי בין מקורות שונים (cross-origin).

  • זיהוי באמצעות hash. ה-hash מייצג באופן ייחודי את הבתים (bytes) של הקובץ, ולא את המיקום שלו.
  • גישה בין מקורות (Cross-origin). כל אתר שיודע את ה-hash יכול לבקש את הקובץ, גם אם הוא מקורו במקום אחר.
  • שיתוף זיכרון מטמון מקומי. אותו עותק פיזי מספק מענה למספר בקשות.

ה-API מוגדר באופן מכוון כצר: הוא אינו מחליף את ה-Cache API הקיים או את IndexedDB. אלו נותרים הכלים לאחסון למטרות כלליות; COS הוא קיצור דרך בעל מטרה אחת עבור blobs גדולים וזהים.

הגנות פרטיות המובנות בעיצוב

מתן אפשרות לאתרים לבדוק את זיכרון המטמון של המשתמש עלול להחזיר את וקטורי המעקב שהחלוקה של זיכרון המטמון (partitioned caches) נועדה למנוע. COS חוסם את הסיכון הזה באמצעות שלושה כללים:

  1. ללא מנייה (No enumeration). סקריפטים אינם יכולים לשאול "אילו hashes יש לך?" – האחסון הוא אטום (opaque).
  2. דרישת hash ידוע. אתר רשאי לבקש קובץ רק אם הוא כבר יודע את ה-hash המדויק. בדיקה אקראנית (probing) היא בלתי אפשרית ללא ידע מוקדם.
  3. סף פופולריות לגישה גלובלית. קובץ חייב להיות נפוץ מספיק – כלומר, "אנונימי" – לפני שמקור אחר יוכל לשלוף אותו. קבצים נדירים נשארים מבודדים למקור שירד אותם לראשונה.

מגבלות אלו שומרות על ה-API כשימושי עבור נכסים משותפים באמת, תוך מניעת הפיכתו לערוץ צדדי (side channel) לביצוע fingerprinting.

מה כדאי לעקוב אחריו בהמשך

ה-Cross-Origin Storage API מציע פתרון פשוט לבעיה שהתרחבה עם הנכסים העצומים בתוך הדפדפן. השאלה האם קהילת האינטרנט תוכל לאזן בין יעילות רוחב פס לבין ערבויות הפרטיות שהניעו את חלוקת זיכרון המטמון, תכריע אם הרעיון יעבור את שלב הטיוטה. אם כן, דפדפנים עתידיים יוכלו לאפשר לך להוריד מודל AI בנפח של מעל 30 GB פעם אחת ולהשתמש בו שוב בכל מקום – תוך חיסכון בזמן, בנתונים ובאנרגיה.