Cross Origin Storage API: فائلوں کو دو بار ڈاؤن لوڈ کرنے سے بچیں

Cross-Origin Storage API براؤزرز کو دو سائٹس کے درمیان 33 GB کا AI ماڈل شیئر کرنے کی اجازت دے سکتا ہے، جس سے آپ کا ڈاؤن لوڈ ہونے والا ڈیٹا 66 GB سے کم ہو کر 33 GB رہ جائے گا۔

براؤزرز پہلے کسی بھی سائٹ کو ایسی فائل دوبارہ استعمال کرنے کی اجازت دیتے تھے جسے کسی دوسری سائٹ نے پہلے ہی حاصل کر لیا ہو۔ اگر آپ دو صفحات پر ایک ہی CDN سے React bundle لوڈ کرتے ہیں، تو براؤزر دوسری بار کیش شدہ (cached) کاپی فراہم کر دیتا ہے۔ رازداری (privacy) پر مبنی تبدیلیوں کے ایک سلسلے نے اس سہولت کو ختم کر دیا ہے: اب براؤزرز کیش کو سائٹ کے لحاظ سے الگ الگ (partition) کر دیتے ہیں، اس لیے ایک جیسے URLs بھی ہر اوریجن (origin) کے لیے علیحدہ طور پر اسٹور کیے جاتے ہیں۔ اس کا نتیجہ یہ نکلتا ہے کہ ہر اس بڑی فائل (asset) کے لیے ڈپلیکیٹ ٹریفک پیدا ہوتی ہے جو ایک سے زیادہ سائٹس پر نظر آتی ہے۔

ڈپلیکیٹ ڈاؤن لوڈ کا مسئلہ اب کیوں اہم ہے

یہ ضیاع چھوٹی فائلوں—جیسے ویب فونٹس یا چند میگا بائٹ کے JavaScript—کے ساتھ نظر آتا ہے، لیکن جب فائل کوئی کئی جیگا بائٹ کا AI ماڈل یا WebAssembly ماڈیول ہو، تو یہ مسئلہ بہت بڑا ہو جاتا ہے۔

Cross-Origin Storage (COS) API کیسے کام کرتی ہے

یہ تجویز URL پر مبنی تلاش (lookup) کو مواد پر مبنی تلاش (content-addressed lookup) سے بدل دیتی ہے۔ ایک سائٹ اس فائل کا SHA-256 hash فراہم کرتی ہے جو اسے چاہیے ہوتی ہے۔ براؤزر اپنے مقامی اسٹور میں اس مخصوص ہیش (hash) کو چیک کرتا ہے، قطع نظر اس کے کہ اسے اصل میں کس اوریجن نے حاصل کیا تھا۔ اگر فائل موجود ہے، تو براؤزر اسے فراہم کر دیتا ہے؛ اگر نہیں، تو وہ نیٹ ورک سے فائل حاصل کرتا ہے اور مستقبل میں کراس اوریجن استعمال کے لیے اسے اس ہیش کے تحت اسٹور کر لیتا ہے۔

  • ہیش کے ذریعے شناخت۔ ہیش فائل کے بائٹس کی منفرد نمائندگی کرتا ہے، اس کے مقام (location) کی نہیں۔
  • کراس اوریجن رسائی۔ کوئی بھی سائٹ جسے ہیش معلوم ہو وہ فائل کی درخواست کر سکتی ہے، چاہے وہ کہیں اور سے آئی ہو۔
  • مقامی کیش شیئرنگ۔ ایک ہی جسمانی کاپی متعدد درخواستوں کو پورا کرتی ہے۔

یہ API جان بوجھ کر محدود رکھی گئی ہے: یہ موجودہ Cache API یا IndexedDB کا متبادل نہیں ہے۔ وہ عام مقصد کے اسٹوریج کے لیے ٹولز رہیں گے؛ COS صرف بڑی اور یکساں فائلوں (blobs) کے لیے ایک مخصوص شارٹ کٹ ہے۔

ڈیزائن میں شامل رازداری کے حفاظتی اقدامات

سائٹس کو صارف کے کیش کی جانچ کرنے کی اجازت دینے سے ٹریکنگ کے وہ طریقے دوبارہ شروع ہو سکتے ہیں جنہیں کیش پارٹیشننگ (partitioned caches) روکنے کے لیے بنائی گئی تھی۔ COS تین اصولوں کے ذریعے اس خطرے کو روکتا ہے:

  1. کوئی انumeration نہیں۔ اسکرپٹس یہ نہیں پوچھ سکتے کہ "آپ کے پاس کون سے ہیشز ہیں؟"—اسٹوریج غیر شفاف (opaque) ہے۔
  2. معلوم ہیش کی ضرورت۔ ایک سائٹ فائل کی درخواست صرف اسی صورت میں کر سکتی ہے اگر اسے پہلے سے درست ہیش معلوم ہو۔ پہلے سے علم کے بغیر بے ترتیب جانچ (random probing) ناممکن ہے۔
  3. عالمی رسائی کے لیے مقبولیت کی حد۔ کسی دوسری اوریجن کے فائل حاصل کرنے سے پہلے فائل کا کافی عام ہونا ضروری ہے—یعنی "گمنام" (anonymous) ہونا۔ نایاب فائلیں اسی اوریجن تک محدود رہیں گی جس نے انہیں پہلی بار ڈاؤن لوڈ کیا تھا۔

یہ حدود API کو حقیقی طور پر مشترکہ اثاثوں (assets) کے لیے مفید رکھتی ہیں جبکہ اسے فنگر پرنٹنگ (fingerprinting) کے لیے ایک ضمنی ذریعے (side channel) بننے سے روکتی ہیں۔

آگے کیا نظر آئے گا

Cross-Origin Storage API اس مسئلے کا ایک سیدھا حل پیش کرتی ہے جو براؤزر کے اندر موجود بڑے اثاثوں کے ساتھ بڑھتا چلا گیا ہے۔ آیا ویب کمیونٹی بینڈوتھ کی کارکردگی اور رازداری کی ضمانتوں (جن کی وجہ سے کیش پارٹیشننگ کی گئی تھی) کے درمیان توازن برقرار رکھ پاتی ہے یا نہیں، یہی فیصلہ کرے گا کہ آیا یہ خیال ڈرافٹ مرحلے سے آگے بڑھتا ہے یا نہیں۔ اگر ایسا ہوا، تو مستقبل کے براؤزرز آپ کو 30 جیگا بائٹ سے زیادہ کا AI ماڈل ایک بار ڈاؤن لوڈ کرنے اور اسے ہر جگہ دوبارہ استعمال کرنے کی اجازت دے سکتے ہیں—جس سے وقت، ڈیٹا اور توانائی کی بچت ہوگی۔