واجهة برمجة تطبيقات التخزين عبر الأصول (Cross Origin Storage API): توقف عن تحميل الملفات مرتين

يمكن لواجهة برمجة تطبيقات التخزين عبر الأصول (Cross-Origin Storage API) أن تتيح للمتصفحات مشاركة نموذج ذكاء اصطناعي بحجم 33 جيجابايت بين موقعين، مما يقلل البيانات التي تقوم بتحميلها من 66 جيجابايت إلى 33 جيجابايت.

اعتادت المتصفحات على السماح لأي موقع بإعادة استخدام ملف قام موقع آخر بتحميله بالفعل. فإذا قمت بتحميل حزمة React نفسها من شبكة توصيل محتوى (CDN) على صفحتين، سيقدم المتصفح النسخة المخزنة مؤقتًا في المرة الثانية. إلا أن سلسلة من التغييرات التي تركز على الخصوصية أفسدت هذه الميزة: أصبحت المتصفحات الآن تقسم الذاكرة المخبئية (caches) حسب الموقع، بحيث يتم تخزين حتى عناوين URL المتطابقة بشكل منفصل لكل أصل (origin). والنتيجة هي تكرار حركة البيانات لكل أصل كبير يظهر في أكثر من موقع واحد.

لماذا تكتسب مشكلة تكرار التحميل أهمية الآن

يظهر هذا الهدر مع الملفات الصغيرة — مثل خطوط الويب أو بضعة ميجابايتات من JavaScript — ولكنه يتفاقم بشكل هائل عندما يكون الأصل عبارة عن نموذج ذكاء اصطناعي بحجم عدة جيجابايتات أو وحدة WebAssembly.

كيف تعمل واجهة برمجة تطبيقات التخزين عبر الأصول (COS API)

يقوم المقترح باستبدال البحث القائم على عنوان URL بالبحث القائم على المحتوى. حيث يقدم الموقع بصمة (hash) من نوع SHA-256 للملف الذي يريده. يتحقق المتصفح في مخزنه المحلي عن تلك البصمة المحددة، بغض النظر عن الأصل الذي قام بتحميلها في الأصل. إذا كان الملف موجودًا، يقوم المتصفح بتسليمه؛ وإذا لم يكن موجودًا، فإنه يقوم بتحميل الملف من الشبكة ويخزنه تحت تلك البصمة لإعادة استخدامه عبر الأصول في المستقبل.

  • التعريف عبر البصمة. تمثل البصمة بايتات الملف بشكل فريد، وليس موقعه.
  • الوصول عبر الأصول. يمكن لأي موقع يعرف البصمة طلب الملف، حتى لو كان مصدره مكانًا آخر.
  • مشاركة الذاكرة المخبئية المحلية. تلبي النسخة المادية نفسها طلبات متعددة.

تتميز واجهة برمجة التطبيقات هذه بكونها محدودة النطاق عن عمد: فهي لا تحل محل Cache API أو IndexedDB الحاليين. تظل تلك الأدوات مخصصة للتخزين للأغراض العامة؛ أما COS فهي اختصار أحادي الغرض للبيانات الضخمة (blobs) المتطابقة.

ضمانات الخصوصية المدمجة في التصميم

إن السماح للمواقع بفحص الذاكرة المخبئية للمستخدم قد يعيد إدخال نواقل التتبع التي كان من المفترض أن توقفها الذاكرة المخبئية المقسمة. وتمنع COS هذه المخاطر من خلال ثلاث قواعد:

  1. منع التعداد. لا يمكن للبرامج النصية أن تسأل "ما هي البصمات التي لديك؟" — فالتخزين غير شفاف (opaque).
  2. شرط معرفة البصمة. لا يمكن للموقع طلب ملف إلا إذا كان يعرف البصمة الدقيقة بالفعل. فمن المستحيل إجراء فحص عشوائي دون معرفة مسبقة.
  3. حد الشعبية للوصول العالمي. يجب أن يكون الملف شائعًا بما يكفي — أي "مجهول الهوية" — قبل أن يتمكن أصل مختلف من استرداده. أما الملفات النادرة فتبقى معزولة في الأصل الذي قام بتحميلها أولاً.

تحافظ هذه القيود على فائدة واجهة برمجة التطبيقات للأصول المشتركة حقًا، مع منعها من أن تصبح قناة جانبية للبصمة الرقمية (fingerprinting).

ما الذي يجب مراقبته لاحقًا

تقدم واجهة برمجة تطبيقات التخزين عبر الأصول (Cross-Origin Storage API) حلاً مباشرًا لمشكلة نمت مع الأصول الضخمة داخل المتصفح. وسوف يحدد ما إذا كان بإمكان مجتمع الويب الموازنة بين كفاءة عرض النطاق الترددي وضمانات الخصوصية التي كانت الدافع وراء تقسيم الذاكرة المخبئية، ما إذا كانت الفكرة ستتجاوز مرحلة المسودة. وإذا حدث ذلك، فقد تتيح لك المتصفحات المستقبلية تحميل نموذج ذكاء اصطناعي بحجم يزيد عن 30 جيجابايت مرة واحدة وإعادة استخدامه في كل مكان — مما يوفر الوقت والبيانات والطاقة.