Seja in lokalna shramba sta metodi shranjevanja brskalnika, ki omogočata shranjevanje podatkov skupaj z zahtevami HTTP brez stanja. So alternativa shranjevanju na podlagi piškotkov in imajo veliko uporab pri spletnem razvoju.

Čeprav delujejo na zelo podoben način, obstajajo pomembne razlike, ki se jih morate zavedati.

Lokalna shramba in shramba seje: kakšna je njuna uporaba?

Lokalna shramba in shramba seje sta API-ja JavaScript, ki ju lahko uporabite za shranjevanje podatkov na strani odjemalca. Spletnemu mestu omogočajo shranjevanje podatkov v brskalniku in brskalniku naročijo, naj do njih dostopa pozneje.

Odvisno od vaših potreb lahko za shranjevanje podatkov uporabite lokalno shrambo ali shrambo seje. Oba načina shranjevanja sta podobna piškotkom, vendar brez enaka zasebnost zadeva okoliške piškotke. Zato večina sodobnih spletnih mest raje uporablja samo spletne načine shranjevanja ali pa jih kombinira s piškotki kot nadomestno možnost.

Za razliko od piškotkov lokalna shramba in shramba seje ne pošiljata podatkov strežniku prek glav HTTP. Uporabite jih samo za funkcionalnost na strani odjemalca.

Poleg tega imata lokalna in sejna shramba vsaka omejitev shranjevanja približno 5 MB na domeno. Zagotavljajo več prostora za shranjevanje kot piškotki, ki imajo kapaciteto le 4 KiB na piškotek.

Kaj je shranjevanje seje?

Seja brskanja je približno vaša uporaba spletnega mesta. Če obiščete spletno mesto, nekaj časa brskate po njem in nato izklopite računalnik, si lahko ta čas predstavljate kot eno sejo. Konfiguracija vašega brskalnika lahko to spremeni na subtilen način, vendar je namen seje predstavljati kos časa, ki ga uporabljate na spletnem mestu.

Shranjevanje seje je edinstveno za vsak zavihek brskalnika. Če odprete nov zavihek in se pomaknete na isto spletno mesto, boste začeli novo sejo z lastnim prostorom za shranjevanje. Če pa v brskalniku uporabljate funkcijo »podvojeni zavihek«, lahko ponovno uporabite isto sejo. Ne morete se preveč zanašati na specifične podrobnosti "seje". Namesto tega se osredotočite na osrednji koncept: shranjevanje seje je začasno.

Shranjevanje seje ima vgrajene metode API za delo s podatki o paru ključ/vrednost. Podatke lahko shranjujete iz JavaScript takole:

sessionStorage.setItem("ključ", "vrednost");

In za pridobitev shranjene vrednosti:

sessionStorage.getItem("ključ");

Upoštevajte, da oboje ključ in vrednost so samo vrste nizov. Če želite shraniti drugo vrsto, jo boste morali eksplicitno ali implicitno pretvoriti v niz.

Kaj je lokalna shramba?

Lokalna shramba hrani podatke v vseh primerih spletnega mesta, ne glede na to, ali so v različnih zavihkih ali oknih. Prav tako je trajno, tako da podatki ne bodo izginili, ko zaprete brskalnik.

Ko odprete spletno mesto, ki je prej uporabljalo lokalno shrambo, bo vedno imelo dostop do teh shranjenih podatkov.

Kot spletni razvijalec lahko uporabite ta mehanizem za shranjevanje podatkov o uporabniku. Nekatera spletna mesta lahko to uporabijo, da ostanejo prijavljeni ali zagotovijo bolj prilagojeno izkušnjo.

Tako kot shranjevanje seje lahko tudi objekt lokalnega pomnilnika nastavite z eno vrstico kode JavaScript:

localStorage.setItem("ključ", "vrednost");

Za dostop do vrednosti ključa:

localStorage.getItem("ključ");

Upoštevajte, da te metode delujejo na enak način kot shranjevanje seje, le uporabljajo drugo vrsto podatkovne shrambe.

Medtem ko shramba seje izbriše podatke takoj, ko se seja konča, je edini način, da počistite lokalno shrambo, da jo izrecno izbrišete. Obe vrsti shranjevanja ponujata dva načina za brisanje podatkov. Prvi odstrani določen podatek glede na njegov ključ:

localStorage.removeItem("ključ");

Prav tako lahko odstranite vse podatke, shranjene na vašem spletnem mestu, ne glede na ključ:

localStorage.clear();

Več o teh metodah API za spletno shranjevanje lahko izveste na javascript.info Spletna stran.

Kdaj potrebujete lokalno shrambo?

Ker je lokalna shramba trajna, je najbolje, da obdržite podatke med obiski uporabnikov. Če želite shraniti nastavitve mesta ali predpomniti dolgoročne podatke, je lokalna shramba primerna. Morda ne boste želeli shranjevati bolj občutljivih podatkov v lokalnem pomnilniku, saj je to trajno.

Ker sta lokalna shramba in shranjevanje seje sprednji metodi, se boste morda želeli izogniti njuni uporabi za strežniške funkcije, kot je prijava uporabnika. V teh primerih bi lahko piškotke obravnavali kot alternativo.

Kdaj potrebujete shranjevanje seje?

Če želite podatke shranjevati samo med interakcijo uporabnika z vašim spletnim mestom, je shranjevanje seje idealno. To je lahko za kratkoročno predpomnjenje ali podatke o uporabi za določen obisk vašega spletnega mesta.

Shranjevanje sej je boljše za shranjevanje bolj občutljivih informacij, saj potečejo.

Lokalna shramba vs. Shranjevanje seje: kaj je bolj varno?

Kot ste videli, so lokalni načini shranjevanja in shranjevanja sej v mnogih pogledih podobni, vendar imajo še vedno prilagojene primere uporabe. Nobenega ne bi smeli obravnavati kot varnega, saj gre za front-end tehnologije, do katerih ima JavaScript dostop. Vendar je shranjevanje sej zelo priročno in njegova začasna narava je pomirjujoča.

Lokalna shramba je trajna, zato lahko povzroči dodatne varnostne pomisleke. Vsakdo, ki odpre brskalnik, lahko teoretično dostopa do lokalnega pomnilnika. Morali bi se zavedati kako delujejo napadi XSS in kako jih preprečiti.

Lokalna shramba ali shramba seje: katero bi morali uporabiti?

Shranjevanje sej je nekoliko bolj varno zaradi svoje začasne narave. Vendar je vaša izbira načina spletnega shranjevanja odvisna od vaših zahtev. Shramba JavaScript je najbolj primerna samo za uporabo na strani odjemalca. Ponuja pa priročno shrambo podatkov v brskalniku in je zelo enostaven za uporabo.

Ne pozabite, da medtem ko lokalna shramba shranjuje podatke na več zavihkih, je shramba seje večinoma edinstvena za vsak zavihek. Zagotoviti morate, da vaša aplikacija uporablja čim manj predpostavk in poskrbi za robne primere.

Piškotki so starejša oblika obstojnosti podatkov, vendar se še vedno zelo uporabljajo. Morda jih boste želeli preveriti glede podatkov, ki jih morate prenesti v strežnik.