Bosh sahifa Wiki Browser storage

Browser storage

Browser storage — veb-ilovaning foydalanuvchi qurilmasida ma’lumot saqlashi uchun brauzer taqdim etadigan mexanizmlar umumiy nomi. Cookie, Web Storage, IndexedDB, Cache Storage va Origin Private File System turli hajm, hayot sikli va access modeliga ega. To‘g‘ri tanlov ma’lumot turi, offline talabi, xavfsizlik va browser eviction siyosatiga bog‘liq.

Asosiy mexanizmlar

Cookie kichik matn qiymatini saqlaydi va mos HTTP so‘rovlarida avtomatik serverga yuborilishi mumkin. Sessiya identifikatori uchun Secure, HttpOnly va SameSite bilan mos, ammo katta client cache uchun samarasiz. JavaScript HttpOnly cookie’ni o‘qiy olmaydi.

localStorage va sessionStorage oddiy key-string value API beradi. U synchronous bo‘lgani uchun katta qiymat main threadni to‘sadi. Local storage browser sessiyalaridan keyin qolishi, session storage esa tab kontekstiga bog‘liq bo‘lishi mumkin. Ikkalasi ham structured query va transaction bermaydi.

IndexedDB structured object, index, cursor va transaction bilan katta local database vazifasini bajaradi. Blob ham saqlashi mumkin. Cache Storage Request va Response juftlarini, ayniqsa Service Worker uchun saqlaydi. U application data query’sining o‘rnini bosmaydi. File System Access va OPFS katta faylga yaqin workload uchun alohida model beradi, lekin qo‘llab-quvvatlash tekshiriladi.

Origin va partition

Storage odatda origin bo‘yicha ajratiladi. Xuddi bir kompaniyaning turli subdomainlari avtomatik umumiy storage olmaydi. Third-party iframe storage’i trackingni kamaytirish uchun partition qilinishi yoki bloklanishi mumkin. Storage Access API ayrim embed holatida foydalanuvchi ruxsati bilan access so‘rashi mumkin.

Incognito rejim alohida vaqtinchalik storage beradi. Browser profile, qurilma va WebView o‘rtasida data avtomatik sinxron emas. Server account bilan bog‘liq muhim holatning asosiy manbasi bo‘lib qoladi; browser storage cache yoki offline nusxa sifatida ishlaydi.

Quota va eviction

Har origin uchun quota mavjud, lekin aniq hajm browser, qurilma bo‘sh joyi va usage’ga bog‘liq. navigator.storage.estimate() taxminiy usage va quota beradi. Saqlash muvaffaqiyatsiz bo‘lishi odatiy xato sifatida boshqariladi. Disk to‘lsa yoki sayt uzoq ishlatilmasa browser data’ni eviction qilishi mumkin.

Persistent storage ruxsati eviction ehtimolini kamaytiradi, ammo backup o‘rnini bosmaydi. Ilova cache’ni qayta qurishi, offline draft uchun serverga sync yoki export imkonini berishi kerak. Schema migration browser yangilanganda yoki yangi app versiyasi ochilganda transaction bilan bajariladi.

Xavfsizlik va maxfiylik

Origin ichida ishlayotgan zararli script localStorage va IndexedDB’ni o‘qishi mumkin. Shu sabab XSS’ga qarshi himoya storage encryptiondan muhimroq: kalit ham shu scriptga mavjud bo‘lsa, client-side shifrlash hujumchini to‘xtatmaydi. Password va uzoq muddatli bearer token keragidan ortiq saqlanmaydi.

Shared qurilmada logout local cache, IndexedDB va service worker bilan bog‘liq shaxsiy javoblarni tozalaydi. Biroq foydalanuvchi tanlagan umumiy tema kabi qiymatni asossiz o‘chirish shart emas. Ma’lumot toifalari alohida namespace va retention siyosatiga ega bo‘ladi.

Tracking uchun stable ID va fingerprint storage privacy qonunlari hamda browser cheklovlariga tegishli. Foydalanuvchiga saqlangan offline ma’lumot hajmi va uni o‘chirish boshqaruvi beriladi. Clear-Site-Data response header ayrim storage va cache turlarini server tomonidan tozalashga yordam beradi.

Izchillik

Bir nechta tab parallel yozsa lost update yuz berishi mumkin. IndexedDB transaction aniq object store’larda atomicity beradi, localStorage esa murakkab compare-and-set mexanizmi bermaydi. Storage event yoki BroadcastChannel tablarni xabardor qiladi, lekin conflictni biznes qoidasi hal qiladi.

Server sync’da local record ID, revision va dirty holat saqlanadi. Offline mutation qayta yuborilganda idempotency va conflict detection ishlatiladi. Device clockiga asoslangan “eng yangi” qoida boshqa qurilma bilan noto‘g‘ri merge qilishi mumkin.

Bog‘liq tushunchalar

IndexedDB, Web Storage, Cookie, Cache Storage, Service Worker, Storage quota, Offline-first