Relácia a lokálne úložisko sú metódy ukladania prehliadača, ktoré vám umožňujú ukladať údaje spolu s bezstavovými požiadavkami HTTP. Sú alternatívou k ukladaniu založenému na súboroch cookie a majú mnoho použití pri vývoji webu.
Aj keď fungujú veľmi podobným spôsobom, existujú významné rozdiely, o ktorých by ste si mali byť vedomí.
Miestne úložisko a úložisko relácií: Aké sú ich využitie?
Lokálne úložisko a úložisko relácie sú rozhrania JavaScript API, ktoré môžete použiť na ukladanie údajov na strane klienta. Umožňujú webovej stránke ukladať údaje v prehliadači a inštruovať prehliadač, aby k nim neskôr pristúpil.
V závislosti od vašich potrieb môžete na ukladanie údajov použiť lokálne úložisko alebo úložisko relácie. Oba spôsoby ukladania sú podobné súborom cookie, ale bez nich rovnaké súkromie sa týka aj súborov cookie. Preto väčšina moderných webových stránok uprednostňuje používanie iba spôsobov webového ukladania alebo ich kombinuje so súbormi cookie ako záložnú.
Na rozdiel od súborov cookie miestne úložisko a úložisko relácie neposielajú údaje na server prostredníctvom hlavičiek HTTP. Mali by ste ich používať iba na funkcie na strane klienta.
Navyše, miestne úložisko a úložisko relácie majú limit úložiska približne 5 MB na doménu. Poskytujú viac úložného priestoru ako súbory cookie, ktoré majú kapacitu iba 4 kB na súbor cookie.
Čo je úložisko relácie?
Relácia prehliadania približuje vaše používanie webovej stránky. Ak navštívite stránku, chvíľu si ju prezeráte a potom vypnete počítač, môžete si to predstaviť ako jednu reláciu. Konfigurácia vášho prehliadača to môže jemným spôsobom zmeniť, ale relácia má za cieľ reprezentovať čas vašej interakcie s webom.
Úložisko relácie je jedinečné pre každú kartu prehliadača. Ak otvoríte novú kartu a prejdete na rovnakú stránku, spustíte novú reláciu s vlastným úložiskom. Ak však vo svojom prehliadači použijete funkciu „duplicitnej karty“, môže sa znova použiť rovnaká relácia. Na konkrétne detaily „relácie“ sa nemôžete príliš spoliehať. Namiesto toho sa zamerajte na základný koncept: úložisko relácie je dočasné.
Úložisko relácií má vstavané metódy API na prácu s údajmi párov kľúč/hodnota. Dáta môžete ukladať z JavaScript ako:
sessionStorage.setItem("kľúč", "hodnota");
A na načítanie uloženej hodnoty:
sessionStorage.getItem("kľúč");
Všimnite si, že oboje kľúč a hodnotu sú len typy reťazcov. Ak chcete uložiť iný typ, budete ho musieť skonvertovať na reťazec, explicitne alebo implicitne.
Čo je miestne úložisko?
Lokálne úložisko uchováva údaje vo všetkých inštanciách lokality, či už sú na rôznych kartách alebo oknách. Je to tiež trvalé, takže údaje po zatvorení prehliadača nezmiznú.
Keď otvoríte webovú stránku, ktorá predtým používala miestne úložisko, bude mať vždy prístup k týmto uloženým údajom.
Ako webový vývojár môžete použiť tento mechanizmus na uchovávanie údajov o používateľovi. Niektoré webové stránky to môžu používať na udržanie vášho prihlásenia alebo na poskytovanie prispôsobenejšieho prostredia.
Podobne ako ukladanie relácie môžete nastaviť objekt lokálneho úložiska s jedným riadkom kódu JavaScript:
localStorage.setItem("key", "value");
Ak chcete získať prístup k hodnote kľúča:
localStorage.getItem("kľúč");
Všimnite si, že tieto metódy fungujú rovnakým spôsobom ako ukladanie relácií, len používajú iný typ úložiska údajov.
Zatiaľ čo úložisko relácie vymaže údaje hneď po skončení relácie, jediným spôsobom, ako vyčistiť miestny ukladací priestor, je explicitne ho odstrániť. Oba typy úložiska ponúkajú dva spôsoby vymazania údajov. Prvý odstráni konkrétnu položku údajov na základe jej kľúča:
localStorage.removeItem("kľúč");
Môžete tiež odstrániť všetky údaje uložené na vašej lokalite bez ohľadu na jej kľúč:
localStorage.clear();
Viac o týchto metódach rozhrania API webového úložiska sa môžete dozvedieť na stránke javascript.info webovej stránky.
Kedy potrebujete lokálne úložisko?
Keďže miestne úložisko je trvalé, najlepšie je uchovávať údaje počas návštev používateľov. Ak chcete ukladať preferencie lokality alebo vyrovnávať dlhodobé údaje, je vhodné lokálne úložisko. Možno nebudete chcieť ukladať citlivejšie údaje pomocou lokálneho úložiska, pretože je trvalé.
Keďže miestne ukladanie a ukladanie relácií sú metódy front-end, možno sa budete chcieť vyhnúť ich používaniu na serverové funkcie, ako je prihlásenie používateľa. V týchto prípadoch môžete ako alternatívu zvážiť súbory cookie.
Kedy potrebujete úložisko relácie?
Ak chcete ukladať údaje iba počas interakcie používateľa s vašou stránkou, ideálne je ukladanie relácie. Môže ísť o krátkodobé ukladanie do vyrovnávacej pamäte alebo údaje o používaní o konkrétnej návšteve vašej lokality.
Ukladanie relácií je lepšie na ukladanie citlivejších informácií, pretože jeho platnosť vyprší.
Lokálne úložisko vs. Ukladanie relácií: Čo je bezpečnejšie?
Ako ste videli, miestne metódy a metódy ukladania relácií sú v mnohých ohľadoch podobné, ale stále majú prispôsobené prípady použitia. Ani jedno by ste nemali považovať za bezpečné, pretože ide o frontendové technológie, ku ktorým má JavaScript prístup. Ukladanie relácií je však veľmi pohodlné a jeho dočasný charakter je upokojujúci.
Miestne úložisko je trvalé, takže môže predstavovať ďalšie bezpečnostné obavy. Každý, kto otvorí prehliadač, má teoreticky prístup k lokálnemu úložisku. Mali by ste si byť vedomí ako fungujú XSS útoky a ako im predchádzať.
Miestne úložisko alebo úložisko relácií: Ktoré by ste mali použiť?
Ukladanie relácií je o niečo bezpečnejšie kvôli jeho dočasnému charakteru. Výber spôsobu ukladania na webe však závisí od vašich požiadaviek. Úložisko JavaScript je najvhodnejšie len na použitie na strane klienta. Ponúka však pohodlné úložisko údajov v prehliadači a veľmi jednoducho sa používa.
Pamätajte, že zatiaľ čo miestne úložisko ukladá údaje na niekoľkých kartách, úložisko relácie je z väčšej časti jedinečné pre každú kartu. Mali by ste zabezpečiť, aby vaša aplikácia vytvárala čo najmenej predpokladov a uspokojila aj okrajové prípady.
Súbory cookie sú staršou formou uchovávania údajov, no stále sa veľmi často používajú. Možno budete chcieť v nich skontrolovať údaje, ktoré potrebujete preniesť na server.