Sesija i lokalna pohrana metode su pohrane preglednika koje vam omogućuju pohranu podataka uz HTTP zahtjeve bez stanja. Oni su alternativa pohranjivanju temeljenom na kolačićima i imaju mnoge namjene u web razvoju.
Iako djeluju na vrlo sličan način, postoje značajne razlike kojih biste trebali biti svjesni.
Lokalna pohrana i pohrana sesije: Koja je njihova upotreba?
Lokalna pohrana i pohrana sesije su JavaScript API-ji koje možete koristiti za pohranu podataka na strani klijenta. Omogućuju web stranici da pohranjuje podatke u preglednik i daje upute pregledniku da im pristupi kasnije.
Ovisno o vašim potrebama, možete koristiti lokalnu pohranu ili pohranu sesije za pohranu podataka. Oba načina pohranjivanja slična su kolačićima, ali bez njih ista se privatnost odnosi i na okolne kolačiće. Stoga većina modernih web stranica radije koristi samo metode web pohrane ili ih kombinira s kolačićima kao zamjenu.
Za razliku od kolačića, lokalna pohrana i pohrana sesije ne šalju podatke poslužitelju putem HTTP zaglavlja. Trebali biste ih koristiti samo za funkcionalnost na strani klijenta.
Osim toga, lokalna pohrana i pohrana sesije imaju ograničenje pohrane od oko 5 MB po domeni. Oni pružaju više prostora za pohranu od kolačića, koji imaju samo 4 KiB po kolačiću.
Što je pohrana sesije?
Sesija pregledavanja približno predstavlja vašu upotrebu web stranice. Ako posjetite web mjesto, malo pregledavate, a zatim isključite računalo, to vrijeme možete zamisliti kao jednu sesiju. Konfiguracija vašeg preglednika to može promijeniti na suptilne načine, ali sesija ima za cilj predstavljati dio vremena vaše interakcije sa web mjestom.
Pohrana sesije jedinstvena je za svaku karticu preglednika. Ako otvorite novu karticu i prijeđete na istu stranicu, započet ćete novu sesiju s vlastitom pohranom. Međutim, ako koristite značajku "duplicirane kartice" u svom pregledniku, to može ponovno upotrijebiti istu sesiju. Ne možete se previše oslanjati na specifične detalje "seanse". Umjesto toga, usredotočite se na temeljni koncept: pohrana sesije je privremena.
Pohrana sesije ima ugrađene API metode za rad s podacima para ključ/vrijednost. Možete pohraniti podatke iz JavaScript ovako:
sessionStorage.setItem("ključ", "vrijednost");
I za dohvaćanje pohranjene vrijednosti:
sessionStorage.getItem("ključ");
Imajte na umu da oboje ključ i vrijednost su samo tipovi nizova. Ako želite pohraniti drugu vrstu, morat ćete je pretvoriti u niz, eksplicitno ili implicitno.
Što je lokalna pohrana?
Lokalna pohrana čuva podatke u svim instancama web-mjesta, bilo da su u različitim karticama ili prozorima. Također je trajno, tako da podaci neće nestati kada zatvorite preglednik.
Kada otvorite web mjesto koje je prethodno koristilo lokalnu pohranu, ono će uvijek imati pristup tim pohranjenim podacima.
Kao web programer, možete koristiti ovaj mehanizam za zadržavanje podataka o korisniku. Neka web-mjesta to mogu koristiti kako bi vas zadržala prijavljenima ili pružila personaliziranije iskustvo.
Poput pohrane sesije, možete postaviti objekt lokalne pohrane s jednim retkom JavaScript koda:
localStorage.setItem("ključ", "vrijednost");
Za pristup vrijednosti ključa:
localStorage.getItem("ključ");
Imajte na umu da ove metode rade na isti način kao pohrana sesije, samo koriste drugu vrstu pohrane podataka.
Dok pohrana sesije briše podatke čim sesija završi, jedini način za brisanje lokalne pohrane jest izričito brisanje. Obje vrste pohrane nude dvije metode brisanja podataka. Prvi uklanja određenu stavku podataka na temelju njezinog ključa:
localStorage.removeItem("ključ");
Također možete ukloniti sve podatke pohranjene na vašoj stranici, bez obzira na ključ:
localStorage.clear();
Možete saznati više o ovim API metodama web pohrane na javascript.info web stranica.
Kada vam je potrebna lokalna pohrana?
Budući da je lokalna pohrana trajna, najbolje je zadržati podatke tijekom posjeta korisnika. Ako želite pohraniti postavke stranice ili predmemorirati dugoročne podatke, prikladna je lokalna pohrana. Možda nećete htjeti pohranjivati osjetljivije podatke pomoću lokalne pohrane jer je to trajno.
Budući da su lokalna pohrana i pohrana sesije front-end metode, možda biste trebali izbjegavati njihovu upotrebu za funkcije temeljene na poslužitelju kao što je prijava korisnika. U tim slučajevima možete razmotriti kolačiće kao alternativu.
Kada vam je potrebna pohrana sesije?
Ako želite pohraniti podatke samo dok korisnik komunicira s vašom web stranicom, tada je pohrana sesije idealna. To bi moglo biti za kratkoročno predmemoriranje ili podatke o korištenju o određenom posjetu vašoj web-lokaciji.
Pohrana sesije bolja je za pohranjivanje osjetljivijih informacija budući da isteče.
Lokalna pohrana vs. Pohrana sesije: Što je sigurnije?
Kao što ste vidjeli, metode lokalnog pohranjivanja i pohranjivanja sesije slične su na mnogo načina, ali još uvijek imaju prilagođene slučajeve upotrebe. Ne biste ih trebali smatrati sigurnima budući da su to front-end tehnologije kojima JavaScript ima pristup. Međutim, pohranjivanje sesije vrlo je zgodno, a njegova privremena priroda umiruje.
Lokalna pohrana je trajna pa može izazvati dodatne sigurnosne probleme. Svatko tko otvori preglednik može, u teoriji, pristupiti lokalnoj pohrani. Trebali biste biti svjesni kako funkcioniraju XSS napadi i kako ih spriječiti.
Lokalna pohrana ili pohrana sesije: što biste trebali koristiti?
Pohrana sesije nešto je sigurnija zbog svoje privremene prirode. Međutim, vaš izbor metode web pohrane ovisi o vašim zahtjevima. JavaScript pohrana je najprikladnija samo za korištenje na strani klijenta. Ali nudi praktičnu pohranu podataka temeljenu na pregledniku i vrlo je jednostavan za korištenje.
Upamtite da dok lokalna pohrana pohranjuje podatke na nekoliko kartica, pohrana sesije je većinom jedinstvena za svaku karticu. Trebali biste osigurati da vaša aplikacija donosi što je moguće manje pretpostavki i da se brine za rubne slučajeve.
Kolačići su stariji oblik postojanosti podataka, ali se još uvijek jako koriste. Možda biste trebali provjeriti podatke koje trebate prenijeti na poslužitelj.