Seanss ja kohalik salvestus on brauseri salvestusmeetodid, mis võimaldavad salvestada andmeid koos olekuta HTTP-päringutega. Need on alternatiiv küpsisepõhisele salvestusele ja neil on veebiarenduses palju kasutusvõimalusi.
Kuigi need toimivad väga sarnaselt, on siiski olulisi erinevusi, millest peaksite teadma.
Kohalik salvestusruum ja seansisalvestus: millised on nende kasutusalad?
Kohalik ja seansisalvestus on JavaScripti API-d, mida saate kasutada andmete salvestamiseks kliendi poolel. Need võimaldavad veebisaidil andmeid brauserisse salvestada ja juhendavad brauserit neile hiljem juurde pääsema.
Sõltuvalt teie vajadustest saate andmete salvestamiseks kasutada kohalikku või seansisalvestust. Mõlemad salvestusmeetodid on sarnased küpsistega, kuid ilma sama privaatsus puudutab ka küpsiseid. Seetõttu eelistavad enamik kaasaegseid veebisaite kasutada ainult veebisalvestusmeetodeid või kombineerida neid küpsistega.
Erinevalt küpsistest ei saada kohalik salvestusruum ja seansisalvestus serverisse HTTP-päiste kaudu andmeid. Peaksite neid kasutama ainult kliendipoolsete funktsioonide jaoks.
Lisaks on nii kohalikul kui ka seansisalvestusel salvestuslimiit umbes 5 MB domeeni kohta. Need pakuvad rohkem salvestusruumi kui küpsised, mille maht on vaid 4 KiB küpsise kohta.
Mis on seansisalvestus?
Sirvimisseanss näitab ligikaudselt teie veebisaidi kasutamist. Kui külastate mõnda saiti, sirvite mõnda aega ringi ja lülitate seejärel arvuti välja, võite mõelda sellele ajale kui ühele seansile. Teie brauseri konfiguratsioon võib seda peenelt muuta, kuid seansi eesmärk on kajastada saidiga suhtlemise aja osa.
Seansi salvestusruum on igal brauseri vahekaardil unikaalne. Kui avate uue vahelehe ja navigeerite samale saidile, alustate uut seanssi oma salvestusruumiga. Kui aga kasutate brauseris vahekaardi dubleerimise funktsiooni, võib see sama seanssi uuesti kasutada. Sa ei saa liiga palju loota "seansi" konkreetsetele üksikasjadele. Selle asemel keskenduge põhikontseptsioonile: seansi salvestamine on ajutine.
Seansisalvestusel on võtme/väärtuste paari andmetega töötamiseks sisseehitatud API meetodid. Saate salvestada andmeid alates JavaScript nagu nii:
sessionStorage.setItem("võti", "väärtus");
Ja salvestatud väärtuse hankimiseks:
sessionStorage.getItem("võti");
Pange tähele, et mõlemad võti ja väärtus on ainult stringitüübid. Kui soovite salvestada teist tüüpi, peate selle otse või kaudselt stringiks teisendama.
Mis on kohalik salvestusruum?
Kohalik salvestusruum säilitab andmeid saidi kõigi eksemplaride kohta, olenemata sellest, kas need asuvad erinevatel vahekaartidel või akendel. See on ka püsiv, nii et andmed ei kao brauseri sulgemisel.
Kui avate veebisaidi, mis varem kasutas kohalikku salvestusruumi, on sellel alati juurdepääs salvestatud andmetele.
Veebiarendajana saate seda mehhanismi kasutada kasutaja andmete säilitamiseks. Mõned veebisaidid võivad seda kasutada teie sisselogituna hoidmiseks või isikupärasema kasutuskogemuse pakkumiseks.
Sarnaselt seansisalvestusega saate määrata kohaliku salvestusobjekti ühe JavaScripti koodireaga:
localStorage.setItem("võti", "väärtus");
Võtme väärtusele juurdepääsemiseks toimige järgmiselt.
localStorage.getItem("võti");
Pange tähele, et need meetodid töötavad samamoodi nagu seansi salvestamine, nad kasutavad lihtsalt erinevat tüüpi andmesalvet.
Kuigi seansi salvestusruum kustutab andmed kohe pärast seansi lõppemist, on ainus viis kohaliku salvestusruumi tühjendamiseks need selgesõnaliselt kustutada. Mõlemad salvestustüübid pakuvad andmete kustutamiseks kahte meetodit. Esimene eemaldab selle võtme alusel konkreetse andmeüksuse:
localStorage.removeItem("võti");
Samuti saate eemaldada kõik saidile salvestatud andmed, olenemata nende võtmest.
localStorage.clear();
Nende veebisalvestuse API meetodite kohta saate lisateavet saidilt javascript.info veebisait.
Millal vajate kohalikku salvestusruumi?
Kuna kohalik salvestusruum on püsiv, on teie parim valik andmete säilitamiseks kasutajate külastuste jooksul. Kui soovite salvestada saidi eelistusi või hoida vahemällu pikaajalisi andmeid, sobib kohalik salvestusruum. Võib-olla ei soovi te tundlikumaid andmeid kohalikule salvestusruumile salvestada, kuna see on püsiv.
Kuna kohalik ja seansisalvestus on esiotsa meetodid, võiksite vältida nende kasutamist serveripõhiste funktsioonide jaoks, nagu kasutaja sisselogimine. Sellistel juhtudel võite alternatiivina kaaluda küpsiseid.
Millal vajate seansi salvestusruumi?
Kui soovite andmeid salvestada ainult sel ajal, kui kasutaja teie saidiga suhtleb, on seansi salvestamine ideaalne. See võib olla teie saidi konkreetse külastuse lühiajaliste vahemällu salvestamise või kasutusandmete jaoks.
Seansi salvestamine on parem tundlikuma teabe salvestamiseks, kuna see aegub.
Kohalik salvestusruum vs. Seansi salvestusruum: kumb on turvalisem?
Nagu olete näinud, on kohalikud ja seansisalvestusmeetodid paljuski sarnased, kuid neil on siiski kohandatud kasutusjuhud. Te ei tohiks kumbagi turvaliseks pidada, kuna need on esiotsa tehnoloogiad, millele JavaScriptil on juurdepääs. Seansi salvestamine on aga väga mugav ja selle ajutine olemus on rahustav.
Kohalik salvestusruum on püsiv, nii et see võib tekitada täiendavaid turvaprobleeme. Igaüks, kes avab brauseri, pääseb teoreetiliselt juurde kohalikule salvestusruumile. Te peaksite olema teadlik kuidas XSS-rünnakud töötavad ja kuidas neid ära hoida.
Kohalik salvestusruum või seansisalvestus: millist peaksite kasutama?
Seansi salvestamine on oma ajutise iseloomu tõttu pisut turvalisem. Veebisalvestusmeetodi valik sõltub aga teie vajadustest. JavaScripti salvestusruum sobib kõige paremini ainult kliendipoolseks kasutamiseks. Kuid see pakub mugavat brauseripõhist andmehoidlat ja seda on väga lihtne kasutada.
Pidage meeles, et kuigi kohalik salvestusruum salvestab andmeid mitmele vahelehele, on seansisalvestus enamasti igal vahekaardil unikaalne. Peaksite tagama, et teie rakendus teeks võimalikult vähe eeldusi ja arvestaks äärmuslike juhtumitega.
Küpsised on andmete püsimise vanem vorm, kuid neid kasutatakse endiselt palju. Võib-olla soovite neilt otsida andmeid, mida peate serverisse edastama.