Kliento saugykla yra būtina žiniatinklio programoms. Ji gali būti ne tokia neperšaunama kaip serverio saugykla, tačiau be jos žiniatinklio programos negalėtų įdiegti daugelio modernių funkcijų. Visų rūšių funkcijos priklauso nuo kliento saugyklos – nuo žaidimų seansų iki pirkinių krepšelių el. prekybos svetainėse.
Kliento saugykla taip pat leidžia žiniatinklio programoms įdiegti į privatumą orientuotą architektūrą. Galite naudoti jį norėdami užtikrinti, kad slapti duomenys niekada nepaliktų iš vartotojo įrenginio.
Kas yra kliento saugykla?
Kuriant žiniatinklį, kliento pusės saugykla reiškia įvairius būdus, kaip žiniatinklio naršyklės gali saugoti duomenis. Tada programa gali naudoti šiuos duomenis funkcijoms teikti vartotojams. Kliento saugykla yra labai svarbi dėl kelių priežasčių:
- Kliente saugomus duomenis galima pasiekti žymiai greičiau, o jūsų programa gali juos pasiekti be interneto.
- Kliento saugykla leidžia programai lengviau atsiminti kiekvieno vartotojo nuostatas.
- Kai kuriuos duomenis nuolat saugojus kliente lengviau apsaugoti vartotojo privatumą.
- Visų programų duomenų saugojimas serveryje yra brangus, ypač dideliais kiekiais.
Yra keletas skirtingų kliento saugyklos formų, kurias galite naudoti žiniatinklio programose.
Slapukai
Naršyklės slapukas yra rakto / vertės duomenų dalis, saugoma kaip eilutė jūsų kompiuteryje. Naršyklės siunčia visus konkrečios svetainės slapukus į svetainės serverį kiekvienoje užklausoje. Slapukai buvo pirmasis (ir kurį laiką vienintelis) kliento saugyklos tipas.
Nėra oficialių slapukų dydžio apribojimų, tačiau atskiros naršyklės nustato skirtingus slapukų, kuriuos galite nustatyti, dydį ir skaičių. The RFC 6265 6.1 skirsnis nurodo šias minimalias slapukų galimybes, kurias turi suteikti naršyklės (vartotojo agentai):
Praktiškiems naudotojo agentams taikomi slapukų, kuriuos jie gali saugoti, skaičiaus ir dydžio apribojimai. Bendrojo naudojimo vartotojų agentai TURI suteikti visas šias minimalias galimybes:
- Mažiausiai 4096 baitai viename slapuke (matuojant pagal slapuko pavadinimo, vertės ir atributų ilgio sumą).
- Mažiausiai 50 slapukų viename domene.
- Iš viso mažiausiai 3000 sausainių.
Slapukai gali likti naršyklėje skirtingą laiką. Kai kurių galiojimo laikas baigiasi puslapio seanso pabaigoje, o kai kurių galiojimo laikas yra savavališkas, kuris gali tęstis net mėnesius į ateitį.
Naršyklės sukuria puslapio seansą, kai atidarote naują skirtuką, ir baigia, kai uždarote skirtuką arba naršyklę. Jei iš naujo įkelsite arba atnaujinsite puslapį, naršyklė nepabaigs puslapio seanso.
Slapukų naudojimo atvejai
Slapukai geriausiai tinka mažoms duomenų dalims, kurias serveriui dažnai turi perskaityti ar keisti, saugoti. Kodėl?
- Slapukai automatiškai pridedami prie visų tinklo užklausų
- Slapukai gali saugoti tik nedidelį kiekį eilutės duomenų.
Galite naudoti slapukus, kad identifikuotumėte vartotoją (pvz., seanso ID), įrašytumėte apsilankymą puslapyje, kad galėtumėte pažymėti žymes, arba išsaugotumėte aukščiausius žaidimo rezultatus.
Vietinė parduotuvė
Kaip ir slapukas, „localStorage“ yra raktų / reikšmių saugykla, kurioje saugomi eilutės duomenys. Nors abu saugyklos tipai yra panašūs, „localStorage“ ir slapukai skiriasi keliais būdais:
- LocalStorage priklauso nuo JavaScript.
- Vietinėje saugykloje esantys duomenys daugiausia yra naršyklėje. Jūs turite sąmoningai siųsti jį į serverį, o ne naršyklė siųsti jį kiekvieną užklausą.
- „LocalStorage“ neturi galiojimo pabaigos datos. Jis išlieka kliente, kol kūrėjas jį ištrina naudodamas „JavaScript“ arba vartotojas neišvalys naršyklės saugyklos.
- „LocalStorage“ turi daug didesnę atminties talpą. The WHATWG spec nenurodo griežtos ribos, bet pagal Vikipedija, mažiausias vietinės saugyklos dydis tarp pagrindinių naršyklių yra 5 MB:
Naršyklės riboja slapukus iki 4 kilobaitų. Interneto saugykla suteikia daug didesnę atminties talpą:
- Opera 10.50+ leidžia 5 MB
- „Safari 8“ leidžia 5 MB
- „Firefox 34“ leidžia 10 MB
- „Google Chrome“ leidžia 10 MB kiekvienam šaltiniui
- Internet Explorer leidžia 10 MB vienai saugyklos vietai
Naudokite „LocalStorage“ dėklus
„LocalStorage“ puikiai tinka dideliam duomenų kiekiui, į kurį serveriui retai reikia kreiptis, saugoti. Tai gali būti programos vartotojo nustatymai, temos konfigūracijos informacija arba neseniai užpildytos formos duomenys. Taip yra todėl, kad „localStorage“ saugojimo limitas yra daug didesnis nei slapukų, tačiau norint išsiųsti jos duomenis į serverį, reikia įdėti daugiau pastangų.
Jei saugote duomenis kaip JSON, galite saugoti pakankamai sudėtingus duomenis naudodami „localStorage“, net jei joje galima saugoti tik eilutes.
„LocalStorage“ yra pažeidžiama XSS atakos, todėl jame neturėtumėte saugoti jautrių klientų duomenų.
SessionStorage
„SessionStorage“ yra raktų / verčių saugykla, kuri veikia beveik toks pat kaip localStorage, išskyrus vieną dalyką. Išsaugoti duomenys išlieka tik visą puslapio seansą.
Naudokite SessionStorage dėklus
Galite naudoti „SessionStorage“ to paties tipo duomenims saugoti kaip „localStorage“, bet tik tada, kai duomenų nereikia išsaugoti po puslapio seanso.
IndexedDB
IndexedDB yra galinga naršyklės API, skirta dideliems struktūrizuotų duomenų kiekiams saugoti. Tai operacinė, į objektą orientuota duomenų bazė, kurioje duomenys saugomi raktų/reikšmių poromis.
Jei dirbate su mažesniu duomenų kiekiu, „localStorage/sessionStorage“ yra geresnis ir lengvesnis pasirinkimas. Deja, juos riboja jų atminties talpa ir tai, kad gali saugoti tik eilučių duomenis. IndexedDB leidžia ne tik saugoti įvairių tipų duomenis, įskaitant failus / dvejetainius duomenis, bet ir daug daugiau duomenų. IndexedDB taip pat sukuria savo turinio indeksus, kad būtų galima greitai ieškoti duomenų bazėje.
Naudokite IndexedDB atvejus
IndexedDB iš esmės yra NoSQL duomenų bazė naršyklėje ir gali saugoti labai didelius duomenų kiekius. Bet koks naudojimo atvejis, kai reikia saugoti daugiau nei 10 MB duomenų, tinka IndexedDB.
Skirtingai nuo kitų naršyklės saugojimo formų, IndexedDB neapsiriboja eilučių saugojimu. IndexedDB gali saugoti visų standartinių JavaScript tipų duomenis. Jei kuriate žiniatinklio programą, kad ji veiktų daugiausia neprisijungus, galite naudoti IndexedDB, kad saugotumėte visus programos duomenis.
Kliento pusės saugykla yra lanksti ir galinga
Terminas kliento saugykla reiškia programos duomenų saugojimą naršyklėje. Kliento pusės saugykla yra labai svarbi daugelio šiuolaikinių žiniatinklio programų veikimui. Yra įvairių tipų kliento saugykla: slapukai, vietinė / sesijos saugykla ir „IndexedDB“.
Visų tipų naršyklės saugyklos turi skirtingus jų talpos ir duomenų, kuriuos jie gali saugoti, tipo apribojimus. Slapukai yra labiausiai apriboti, vietinis / sesijos saugojimas yra patogiausias, o „IndexedDB“ yra galingiausias.