Veb-xotira - Web storage

Veb-xotira, ba'zan sifatida tanilgan DOM xotirasi (Hujjat ob'ekti modeli saqlash), beradi veb-ilovalar mijoz tomonidagi ma'lumotlarni saqlash usullari va protokollari bilan. Veb-xotirani qo'llab-quvvatlaydi doimiy shunga o'xshash ma'lumotlarni saqlash pechene ammo juda rivojlangan quvvat bilan[1] va hech qanday ma'lumot saqlanmagan HTTP so'rovining sarlavhasi.[2] Ikkita asosiy veb-xotira turi mavjud: mahalliy saqlash va sessiyani saqlash, xuddi shunga o'xshash doimiy cookie-fayllar va cookie-fayllar navbati bilan. Veb-saqlash standartlangan Butunjahon Internet tarmog'idagi konsortsium (W3C)[3] va WHATWG.[4] Barcha yirik brauzerlar buni qo'llab-quvvatlaydi.

Xususiyatlari

Veb-saqlash ba'zi bir asosiy jihatlari bilan cookie-fayllardan farq qiladi.

Maqsad
Cookie-fayllar serverlar bilan aloqa qilish uchun mo'ljallangan; ular avtomatik ravishda barcha so'rovlarga qo'shiladi va ularga server tomonidan ham, mijoz tomonidan ham kirish mumkin. Veb-xotira faqat uning tasarrufiga kiradi mijoz tomonidagi skript. Har bir HTTP so'rovida veb-xotira ma'lumotlari avtomatik ravishda serverga uzatilmaydi va veb-server to'g'ridan-to'g'ri veb-xotiraga yozib bo'lmaydi. Biroq, ushbu effektlarning har ikkalasiga ham mijozning aniq skriptlari yordamida erishish mumkin, bu esa serverning kerakli o'zaro ta'sirini aniq sozlash imkonini beradi.
Saqlash hajmi
Cookie-fayllar 4 kilobaytgacha cheklangan. Veb-xotira juda katta hajmdagi saqlash imkoniyatini beradi:
Mahalliy va sessiyani saqlash
Veb-xotira hajmi va ishlash muddati jihatidan farq qiluvchi ikkita turli xil saqlash maydonlarini taklif etadi - mahalliy saqlash va sessiyani saqlash. Mahalliy xotiraga joylashtirilgan ma'lumotlar kelib chiqishi bo'yicha - protokol, xost nomi va port raqamining kombinatsiyasida bir kelib chiqishi siyosati. Ma'lumotlar ilgari ma'lumotlarni saqlagan va brauzer yopilgandan keyin davom etadigan bir xil kelib chiqadigan sahifalardan yuklangan barcha skriptlar uchun mavjud. Shunday qilib, veb-xotirada tavsiflangan cookie-fayllarning zaifligi va zaif konfidensiallik muammolari bo'lmaydi RFC  6265 8.5 va 8.6 bo'limlari. Sessiyani saqlash har bir kelib chiqishi uchun va har bir nusxasi uchun (har bir oyna yoki har bir yorliq uchun) va nusxaning ishlash muddati bilan cheklangan. Sessiyani saqlash bir xil veb-ilovaning alohida nusxalarini har xil oynalarda bir-biriga xalaqit bermasdan ishlashiga imkon berish uchun mo'ljallangan, bu cookie fayllari tomonidan yaxshi qo'llab-quvvatlanmagan.[11]
Interfeys va ma'lumotlar modeli
Veb-xotira cookie-fayllardan yaxshiroq dasturiy interfeysni ta'minlaydi, chunki u assotsiativ qator ma'lumotlar modeli bu erda kalitlar va qiymatlar ikkalasi ham mavjud torlar. Qo'shimcha API kirish uchun tuzilgan ma'lumotlar W3C veb-ilovalari ishchi guruhi tomonidan ko'rib chiqilmoqda.[12]

Foydalanish

Veb-xotirani qo'llab-quvvatlovchi brauzerlar global ob'ektlarga ega sessiya saqlash va localStorage oyna darajasida e'lon qilingan. Quyidagi JavaScript kodi ushbu brauzerlarda veb-xotirani ishga tushirish uchun ishlatilishi mumkin:

// sessiya davomiyligi uchun brauzerda qiymatni saqlangsessiya saqlash.setItem("kalit", "qiymat");// qiymatni olish (brauzer yopilganda va qayta ochilganda o'chiriladi) ...ogohlantirish(sessiya saqlash.getItem("kalit"));// sessiya davomiyligidan tashqari brauzerda qiymatni saqlanglocalStorage.setItem("kalit", "qiymat");// qiymatni olish (brauzer yopilgandan va qayta ochilgandan keyin ham davom etadi)ogohlantirish(localStorage.getItem("kalit"));

Storage API orqali faqat satrlarni saqlash mumkin.[13] Boshqa ma'lumot turini saqlashga urinish ko'pgina brauzerlarda avtomatik ravishda mag'lubiyatga aylanishga olib keladi. Konversiya JSON ammo, JavaScript moslamalarini samarali saqlashga imkon beradi.

// Satr o'rniga ob'ektni saqlanglocalStorage.setItem("kalit", {ism: "qiymat"});ogohlantirish(tipo localStorage.getItem("kalit")); // string// Satr o'rniga butun sonni saqlanglocalStorage.setItem("kalit", 1);ogohlantirish(tipo localStorage.getItem("kalit")); // string// JSON yordamida ob'ektni saqlanglocalStorage.setItem("kalit", JSON.toraytirmoq({ism: "qiymat"}));ogohlantirish(JSON.tahlil qilish(localStorage.getItem("kalit")).ism); // qiymat

Nomenklatura

W3C qoralamasi "Veb-xotira" deb nomlangan. "DOM saqlash" ham tez-tez ishlatib turiladigan nom bo'lib kelgan, ammo u tobora kamayib bormoqda; masalan, Mozilla va Microsoft ishlab chiquvchilari saytlarining "DOM Storage" veb-maqolalari "Web Storage" maqolalari bilan almashtirildi.[14][15][16][17]

DOM omboridagi "DOM" so'zma-so'z ma'noga ega emas Hujjat ob'ekti modeli. W3C ma'lumotlariga ko'ra, "DOM atamasi veb-ilovalardagi skriptlar uchun mavjud bo'lgan API to'plamiga murojaat qilish uchun ishlatiladi va bu aslida Hujjat ob'ekti mavjudligini anglatmaydi ..."[18]

Veb-xotirani boshqarish

Veb-saqlash ob'ektlarini saqlash sukut bo'yicha barcha qo'llab-quvvatlanadigan veb-brauzerlarning joriy versiyalarida yoqilgan bo'lib, brauzer sotuvchilari foydalanuvchilarga veb-xotirani tabiiy ravishda yoqish yoki o'chirib qo'yish yoki veb-xotira "keshini" tozalash usullarini taqdim etishadi. Shaxsiy veb-xotirani boshqarish uchun ham xuddi shunday uchinchi tomon tomonidan foydalanish mumkin brauzer kengaytmalari. Har bir brauzer veb-saqlash ob'ektlarini har xil saqlaydi:

  • Firefox a-da veb-saqlash ob'ektlarini saqlaydi SQLite fayl chaqirildi webappsstore.sqlite foydalanuvchining profil papkasida.
  • Gugl xrom a-da veb-saqlash ma'lumotlarini yozib oladi SQLite foydalanuvchi profilidagi fayl. Ushbu faylni o'z ichiga olgan pastki papka "AppDataLocalGoogleChromeUser DataDefaultLocal saqlash"yoqilgan Windows va "~ / Library / Application Support / Google / Chrome / Default / Local Storage"yoqilgan macOS.
  • Opera Veb-xotirasi ikkala joyda joylashgan "AppDataRoamingOperaOperasessionsautosave.win"yoki"AppDataLocalOperaOperapstorage"Opera versiyasiga qarab.
  • Internet Explorer Veb-xotirasi "AppDataLocalLowMicrosoftInternet ExplorerDOMStorage".

Shuningdek qarang

Adabiyotlar

  1. ^ Opera veb-ombori, 2011 yil http://dev.opera.com/articles/view/web-storage/
  2. ^ AndyHume.net, 2011 yil http://blog.andyhume.net/localstorage-is-not-cookies
  3. ^ Veb-xotira. W3.org. 2011-06-12 da qabul qilingan.
  4. ^ HTML turmush standarti 11 Veb-xotira
  5. ^ https://dev.opera.com/articles/web-storage/
  6. ^ https://www.html5rocks.com/en/tutorials/offline/quota-research/
  7. ^ https://www.html5rocks.com/en/tutorials/offline/quota-research/
  8. ^ Jon Resig: DOM saqlash. Jon Resig, ejohn.org. 2011-06-12 da qabul qilingan.
  9. ^ "21680002-son: 5M dan 10M gacha bo'lgan windows.localstorage limitini ko'taring. - Kodni ko'rib chiqish". chromiumcodereview.appspot.com.
  10. ^ Veb-saqlashga kirish. Microsoft Developer Network, msdn.microsoft.com. 2014-08-05 da qabul qilingan.
  11. ^ W3C: Web Storage qoralama standarti. Dev.w3.org (2004-02-05). 2011-06-12 da qabul qilingan.
  12. ^ W3C: indekslangan ma'lumotlar bazasi APIsi. W3C. 2012-02-12 da qabul qilingan.
  13. ^ W3C, 2011 yil http://dev.w3.org/html5/webstorage/
  14. ^ "DOM saqlash". Mozilla Developer Network. Arxivlandi asl nusxasi 2011 yil 4-iyun kuni. Olingan 2011-06-12.
  15. ^ "Web Storage API". Mozilla Developer Network. Olingan 28 iyun, 2017.
  16. ^ "DOM saqlashga kirish". Microsoft Developer Network. Arxivlandi asl nusxasi 2011 yil 8 iyunda. Olingan 2011-06-12.
  17. ^ "Veb-xotiraga kirish". Microsoft Developer Network. Olingan 28 iyun, 2017.
  18. ^ W3C: Web Storage loyihasi standarti. Dev.w3.org (2004-02-05). 2011-06-12 da qabul qilingan.

Tashqi havolalar