Cross Origin Storage API: ফাইল দুবার ডাউনলোড করা বন্ধ করুন

Cross-Origin Storage API ব্রাউজারগুলোকে দুটি সাইটের মধ্যে একটি 33 GB AI মডেল শেয়ার করার সুযোগ দিতে পারে, যা আপনার ডাউনলোড করা ডেটার পরিমাণ 66 GB থেকে কমিয়ে 33 GB-তে নিয়ে আসবে।

আগে ব্রাউজারগুলো যেকোনো সাইটকে এমন একটি ফাইল পুনরায় ব্যবহার করতে দিত যা অন্য একটি সাইট ইতিমধ্যে সংগ্রহ (fetch) করেছে। উদাহরণস্বরূপ, দুটি পেজে একটি CDN থেকে একই React bundle লোড করলে, ব্রাউজার দ্বিতীয়বার সেটি ক্যাশ (cached) কপি থেকে সরবরাহ করে। তবে গোপনীয়তা রক্ষার উদ্দেশ্যে করা কিছু পরিবর্তনের ফলে এই সুবিধাটি আর নেই: এখন ব্রাউজারগুলো সাইট অনুযায়ী ক্যাশগুলোকে আলাদা (partition) করে রাখে, ফলে একই URL হলেও প্রতিটি অরিজিনের (origin) জন্য সেগুলো আলাদাভাবে সংরক্ষিত হয়। এর ফলে একাধিক সাইটে থাকা প্রতিটি বড় অ্যাসেটের (asset) জন্য ডুপ্লিকেট ট্রাফিক তৈরি হয়।

কেন ডুপ্লিকেট-ডাউনলোড সমস্যাটি এখন গুরুত্বপূর্ণ

এই অপচয় ছোট ফাইলের ক্ষেত্রে—যেমন ওয়েব ফন্ট বা কয়েক মেগাবাইট JavaScript—সামান্য মনে হলেও, যখন অ্যাসেটটি মাল্টি-গিগাবাইট AI মডেল বা একটি WebAssembly মডিউল হয়, তখন এটি বিশাল আকার ধারণ করে।

Cross-Origin Storage (COS) API কীভাবে কাজ করে

এই প্রস্তাবটি URL-ভিত্তিক অনুসন্ধানের পরিবর্তে কন্টেন্ট-অ্যাড্রেসড (content-addressed) পদ্ধতি ব্যবহার করে। একটি সাইট যে ফাইলটি চায় তার একটি SHA-256 hash প্রদান করে। ব্রাউজারটি তার লোকাল স্টোরে সেই নির্দিষ্ট হ্যাশটি আছে কি না তা পরীক্ষা করে দেখে, সেটি কোন অরিজিন থেকে সংগ্রহ করা হয়েছিল তা বিবেচনা না করেই। যদি ফাইলটি উপস্থিত থাকে, তবে ব্রাউজার সেটি দিয়ে দেয়; আর যদি না থাকে, তবে এটি নেটওয়ার্ক থেকে ফাইলটি সংগ্রহ করে এবং ভবিষ্যতে ক্রস-অরিজিন ব্যবহারের জন্য সেই হ্যাশের অধীনে সংরক্ষণ করে।

  • হ্যাশ দ্বারা শনাক্তকরণ। হ্যাশটি ফাইলের বাইটগুলোকে অনন্যভাবে উপস্থাপন করে, এর অবস্থানকে নয়।
  • ক্রস-অরিজিন অ্যাক্সেস। যে কোনো সাইট যদি হ্যাশটি জানে, তবে তারা ফাইলটি রিকোয়েস্ট করতে পারে, এমনকি ফাইলটি অন্য কোনো উৎস থেকে আসলেও।
  • লোকাল ক্যাশ শেয়ারিং। একই ফিজিক্যাল কপি একাধিক রিকোয়েস্ট পূরণ করতে পারে।

এই API-টি উদ্দেশ্যমূলকভাবে সীমিত রাখা হয়েছে: এটি বিদ্যমান Cache API বা IndexedDB-এর বিকল্প নয়। সেগুলো সাধারণ কাজের স্টোরেজের জন্য ব্যবহৃত হবে; COS হলো বড় এবং অভিন্ন ব্লব (blobs)-এর জন্য একটি নির্দিষ্ট কাজের শর্টকাট।

ডিজাইনে অন্তর্ভুক্ত গোপনীয়তা সুরক্ষা ব্যবস্থা

সাইটগুলোকে ব্যবহারকারীর ক্যাশ পরীক্ষা করার অনুমতি দিলে সেই ট্র্যাকিং ভেক্টরগুলো আবার ফিরে আসতে পারে যা ক্যাশ পার্টিশনিং বন্ধ করার জন্য করা হয়েছিল। COS তিনটি নিয়মের মাধ্যমে সেই ঝুঁকি রোধ করে:

  1. এনুমারেটেশন বা তালিকাভুক্তকরণ নিষিদ্ধ। স্ক্রিপ্টগুলো জিজ্ঞাসা করতে পারবে না যে “আপনার কাছে কোন কোন হ্যাশ আছে?”—স্টোরেজটি সম্পূর্ণ অস্পষ্ট (opaque) থাকবে।
  2. পরিচিত হ্যাশের প্রয়োজনীয়তা। একটি সাইট কেবল তখনই ফাইল রিকোয়েস্ট করতে পারবে যদি সেটির সঠিক হ্যাশ আগে থেকেই জানা থাকে। পূর্বজ্ঞান ছাড়া এলোমেলোভাবে পরীক্ষা করা অসম্ভব।
  3. গ্লোবাল অ্যাক্সেসের জন্য জনপ্রিয়তার সীমা। অন্য কোনো অরিজিন ফাইলটি সংগ্রহ করার আগে ফাইলটিকে যথেষ্ট সাধারণ বা “অ্যানোনিমাস” হতে হবে। বিরল ফাইলগুলো সেই অরিজিনেই সীমাবদ্ধ থাকবে যা প্রথমবার সেগুলো ডাউনলোড করেছিল।

এই সীমাবদ্ধতাগুলো API-টিকে প্রকৃত শেয়ার করা অ্যাসেটগুলোর জন্য কার্যকর রাখে এবং এটিকে ফিঙ্গারপ্রিন্টিংয়ের (fingerprinting) জন্য একটি সাইড চ্যানেল হওয়া থেকে রক্ষা করে।

পরবর্তীতে কী লক্ষ্য রাখা উচিত

Cross-Origin Storage API ব্রাউজারের বিশাল অ্যাসেটগুলোর কারণে তৈরি হওয়া একটি সমস্যার সহজ সমাধান প্রদান করে। ওয়েব কমিউনিটি ব্যান্ডউইথ দক্ষতা এবং ক্যাশ পার্টিশনিংয়ের পেছনে থাকা গোপনীয়তার নিশ্চয়তার মধ্যে ভারসাম্য বজায় রাখতে পারে কি না, তার ওপর নির্ভর করবে এই ধারণাটি ড্রাফট বা খসড়া পর্যায় থেকে পরবর্তী ধাপে যাবে কি না। যদি এটি সফল হয়, তবে ভবিষ্যতের ব্রাউজারগুলো আপনাকে একবার ৩০ গিগাবাইটের বেশি বড় একটি AI মডেল ডাউনলোড করতে দেবে এবং সেটি সব জায়গায় পুনরায় ব্যবহার করতে দেবে—যা সময়, ডেটা এবং শক্তি সাশ্রয় করবে।