Úložisko na strane klienta je pre webové aplikácie nevyhnutné. Nemusí to byť také nepriestrelné ako úložisko na strane servera, ale bez neho by webové aplikácie neboli schopné implementovať mnoho moderných funkcií. Všetky druhy funkcií závisia od úložiska na strane klienta, od relácií v hrách až po nákupné košíky na webových stránkach elektronického obchodu.
Úložisko na strane klienta tiež umožňuje webovým aplikáciám implementovať architektúru zameranú na ochranu osobných údajov. Môžete ho použiť na zabezpečenie toho, aby citlivé údaje nikdy neopustili zariadenie používateľa.
Čo je úložisko na strane klienta?
Pri vývoji webových aplikácií sa ukladanie na strane klienta vzťahuje na rôzne spôsoby, akými môžu webové prehliadače ukladať údaje. Aplikácia potom môže použiť tieto údaje na poskytovanie funkcií používateľom. Úložisko na strane klienta je kritické z niekoľkých dôvodov:
- Prístup k údajom uloženým na klientovi je výrazne rýchlejší a vaša aplikácia k nim môže pristupovať aj bez internetu.
- Úložisko na strane klienta uľahčuje vašej aplikácii zapamätať si preferencie každého používateľa.
- Trvalé ukladanie niektorých údajov na klientovi uľahčuje ochranu súkromia používateľov.
- Ukladanie všetkých aplikačných údajov na server je drahé, najmä vo veľkom rozsahu.
Existuje niekoľko rôznych foriem úložiska na strane klienta, ktoré môžete použiť vo svojich webových aplikáciách.
Cookies
Súbor cookie prehliadača je časť údajov kľúč/hodnota uložená ako reťazec vo vašom počítači. Prehliadače odosielajú všetky súbory cookie pre konkrétnu lokalitu na server lokality pri každej žiadosti. Súbory cookie boli prvým (a na chvíľu aj jediným) typom ukladania na strane klienta.
Neexistuje žiadny oficiálny limit na veľkosť súboru cookie, ale jednotlivé prehliadače stanovujú rôzne limity na veľkosť a počet súborov cookie, ktoré môžete nastaviť. The RFC 6265, časť 6.1 uvádza nasledujúce minimálne možnosti súborov cookie, ktoré by prehliadače (user agenti) mali poskytovať:
Praktické implementácie používateľských agentov majú limity na počet a veľkosť súborov cookie, ktoré môžu ukladať. Agenti používateľov na všeobecné použitie BY MALI poskytovať každú z nasledujúcich minimálnych schopností:
- Minimálne 4096 bajtov na súbor cookie (merané súčtom dĺžky názvu, hodnoty a atribútov súboru cookie).
- Aspoň 50 súborov cookie na doménu.
- Celkovo najmenej 3 000 súborov cookie.
Súbory cookie môžu zostať v prehliadači rôzne dlho. Platnosť niektorých vyprší na konci relácie stránky a niektoré majú ľubovoľné dátumy vypršania platnosti, ktoré sa môžu predĺžiť až na mesiace do budúcnosti.
Prehliadače vytvoria reláciu stránky, keď otvoríte novú kartu, a ukončia ju, keď kartu alebo prehliadač zatvoríte. Ak stránku znova načítate alebo obnovíte, prehliadač neukončí reláciu stránky.
Prípady použitia pre súbory cookie
Súbory cookie sú najvhodnejšie na ukladanie malých údajov, ktoré server často potrebuje čítať alebo upravovať. prečo?
- Cookies sa automaticky pripájajú ku všetkým sieťovým požiadavkám
- Súbory cookie môžu ukladať iba malé množstvá údajov reťazca.
Súbory cookie môžete použiť na identifikáciu používateľa (napríklad ID relácie), zaznamenanie návštevy stránky na účely ukladania záložiek alebo uloženie najvyššieho skóre hry.
Lokálny obchod
Podobne ako súbor cookie, aj localStorage je úložisko kľúč/hodnota, v ktorom sú uložené reťazcové údaje. Aj keď sú oba typy úložiska podobné, localStorage a súbory cookie sa líšia niekoľkými spôsobmi:
- LocalStorage závisí od JavaScriptu.
- Údaje v localStorage sa nachádzajú predovšetkým v prehliadači. Musíte ho zámerne poslať na server, namiesto toho, aby ho prehliadač posielal pri každej požiadavke.
- LocalStorage nemá dátum vypršania platnosti. Pretrváva na klientovi, kým ho vývojár neodstráni pomocou JavaScriptu alebo kým používateľ nevymaže úložisko prehliadača.
- LocalStorage má oveľa väčšiu úložnú kapacitu. The Špecifikácia WHATWG nešpecifikuje pevný limit, ale podľa Wikipedia, minimálna veľkosť localStorage medzi hlavnými prehliadačmi je 5 MB:
Prehliadače obmedzujú súbory cookie na 4 kilobajty. Webové úložisko poskytuje oveľa väčšiu úložnú kapacitu:
- Opera 10.50+ umožňuje 5 MB
- Safari 8 umožňuje 5 MB
- Firefox 34 umožňuje 10 MB
- Google Chrome povoľuje 10 MB na každý zdroj
- Internet Explorer umožňuje 10 MB na úložnú oblasť
Prípady použitia pre LocalStorage
LocalStorage je ideálny na ukladanie veľkého množstva údajov, na ktoré server len zriedka potrebuje odkazovať. Môžu to byť používateľské nastavenia aplikácie, podrobnosti o konfigurácii témy alebo údaje v nedávno vyplnenom formulári. Je to preto, že localStorage má oveľa väčší limit úložiska ako súbory cookie, ale na odoslanie jeho údajov na server musíte vynaložiť ďalšie úsilie.
Ak údaje uložíte ako JSON, môžete pomocou localStorage ukladať primerane zložité údaje, aj keď dokáže ukladať iba reťazce.
LocalStorage je zraniteľný voči XSS útoky, takže by ste do nej nemali ukladať citlivé údaje klientov.
SessionStorage
SessionStorage je úložisko kľúč/hodnota, ktoré funguje takmer rovnaké ako localStorage, až na jednu vec. Uložené údaje zostávajú zachované iba počas relácie stránky.
Prípady použitia pre SessionStorage
SessionStorage môžete použiť na ukladanie rovnakého typu údajov ako localStorage, ale iba vtedy, keď údaje nemusia zostať po relácii stránky.
IndexovanáDB
IndexedDB je výkonné rozhranie API prehliadača na ukladanie veľkého množstva štruktúrovaných údajov. Ide o transakčnú, objektovo orientovanú databázu, ktorá ukladá údaje v pároch kľúč/hodnota.
Ak máte čo do činenia s menším množstvom dát, localStorage/sessionStorage je lepšia a jednoduchšia voľba. Bohužiaľ, sú obmedzené ich úložnou kapacitou a skutočnosťou, že môžu ukladať iba reťazcové dáta. IndexedDB umožňuje nielen ukladať rôzne typy údajov vrátane súborov/binárnych údajov, ale môže tiež uložiť oveľa viac údajov. IndexedDB tiež vytvára indexy svojho obsahu, ktoré umožňujú rýchle vyhľadávanie v databáze.
Prípady použitia pre IndexedDB
IndexedDB je v podstate databáza NoSQL v prehliadači a môže ukladať veľké množstvo údajov. Pre IndexedDB je vhodný akýkoľvek prípad použitia, ktorý vyžaduje ukladanie viac ako 10 MB údajov.
Na rozdiel od iných foriem úložiska prehliadača sa IndexedDB neobmedzuje na ukladanie reťazcov. IndexedDB môže ukladať údaje všetkých štandardných typov JavaScriptu. Ak vytvoríte webovú aplikáciu na prácu primárne offline, môžete použiť IndexedDB na uloženie všetkých údajov aplikácie.
Úložisko na strane klienta je flexibilné a výkonné
Pojem úložisko na strane klienta sa vzťahuje na ukladanie údajov aplikácie v prehliadači. Úložisko na strane klienta je nevyhnutné pre fungovanie väčšiny moderných webových aplikácií. Existujú rôzne typy ukladania na strane klienta: cookies, local/sessionStorage a IndexedDB.
Všetky typy úložiska prehliadača majú rôzne limity na svoju kapacitu a typ údajov, ktoré môžu ukladať. Súbory cookie sú najobmedzenejším typom, najpohodlnejší je local/sessionStorage a najvýkonnejší je IndexedDB.