Pamięć masowa po stronie klienta jest niezbędna dla aplikacji internetowych. Może nie być tak kuloodporny jak pamięć masowa po stronie serwera, ale bez niej aplikacje internetowe nie byłyby w stanie zaimplementować wielu nowoczesnych funkcji. Wszystkie rodzaje funkcji zależą od przechowywania po stronie klienta, od sesji w grach po koszyki w witrynach e-commerce.

Pamięć masowa po stronie klienta umożliwia również aplikacjom internetowym implementację architektury zorientowanej na prywatność. Możesz go użyć, aby zapewnić, że poufne dane nigdy nie opuszczą urządzenia użytkownika.

Co to jest pamięć masowa po stronie klienta?

W tworzeniu stron internetowych przechowywanie po stronie klienta odnosi się do różnych sposobów, w jakie przeglądarki internetowe mogą przechowywać dane. Aplikacja może następnie wykorzystać te dane do zapewnienia funkcjonalności użytkownikom. Pamięć masowa po stronie klienta ma kluczowe znaczenie z kilku powodów:

  • Dostęp do danych przechowywanych na kliencie jest znacznie szybszy, a Twoja aplikacja może uzyskać do nich dostęp bez internetu.
  • instagram viewer
  • Przechowywanie po stronie klienta ułatwia aplikacji zapamiętywanie preferencji każdego użytkownika.
  • Przechowywanie niektórych danych na stałe na kliencie ułatwia ochronę prywatności użytkowników.
  • Przechowywanie wszystkich danych aplikacji na serwerze jest kosztowne, zwłaszcza na dużą skalę.

Istnieje kilka różnych form przechowywania po stronie klienta, których możesz używać w swoich aplikacjach internetowych.

Ciasteczka

Plik cookie przeglądarki to fragment danych klucz/wartość przechowywany w postaci ciągu na Twoim komputerze. Przeglądarki wysyłają wszystkie pliki cookie dla określonej witryny na serwer witryny na każde żądanie. Pliki cookie były pierwszym (i przez jakiś czas jedynym) rodzajem przechowywania po stronie klienta.

Nie ma oficjalnego limitu rozmiaru pliku cookie, ale poszczególne przeglądarki nakładają różne ograniczenia na rozmiar i liczbę plików cookie, które możesz ustawić. The RFC 6265 sekcja 6.1 stwierdza, że ​​przeglądarki (agenty użytkownika) powinny zapewniać następujące minimalne możliwości obsługi plików cookie:

Praktyczne implementacje agenta użytkownika mają ograniczenia dotyczące liczby i rozmiaru plików cookie, które mogą przechowywać. Programy użytkownika ogólnego użytku POWINNY zapewniać każdą z następujących minimalnych możliwości:

  • Co najmniej 4096 bajtów na plik cookie (mierzone jako suma długości nazwy, wartości i atrybutów pliku cookie).
  • Co najmniej 50 plików cookie na domenę.
  • Łącznie co najmniej 3000 plików cookie.

Pliki cookie mogą pozostawać w przeglądarce przez różny czas. Niektóre wygasają pod koniec sesji strony, a niektóre mają arbitralne daty wygaśnięcia, które mogą sięgać nawet miesięcy w przyszłość.

Przeglądarki tworzą sesję strony po otwarciu nowej karty i kończą ją po zamknięciu karty lub przeglądarki. Jeśli ponownie załadujesz lub odświeżysz stronę, przeglądarka nie zakończy sesji strony.

Przypadki użycia plików cookie

Pliki cookie najlepiej nadają się do przechowywania małych porcji danych, które serwer często musi odczytywać lub modyfikować. Czemu?

  • Pliki cookie są automatycznie dołączane do wszystkich żądań sieciowych
  • Pliki cookie mogą przechowywać tylko niewielkie ilości danych ciągów.

Możesz używać plików cookie do identyfikacji użytkownika (takiego jak identyfikator sesji), rejestrować wizytę na stronie w celu tworzenia zakładek lub przechowywać najlepszy wynik gry.

Lokalny magazyn

Podobnie jak plik cookie, localStorage jest magazynem klucz/wartość, który przechowuje dane ciągu. Chociaż oba typy przechowywania są podobne, localStorage i pliki cookie różnią się na kilka sposobów:

  • LocalStorage zależy od JavaScript.
  • Dane w localStorage znajdują się głównie w przeglądarce. Musisz celowo wysłać go na serwer, zamiast przeglądarki wysyłającej go na każde żądanie.
  • LocalStorage nie ma daty ważności. Utrzymuje się na kliencie, dopóki programista nie usunie go za pomocą JavaScript lub użytkownik wyczyści pamięć przeglądarki.
  • LocalStorage ma znacznie większą pojemność. The Specyfikacja WHATWG nie określa sztywnego limitu, ale według Wikipedia, minimalny rozmiar localStorage wśród głównych przeglądarek to 5 MB:

Przeglądarki ograniczają pliki cookie do 4 kilobajtów. Pamięć internetowa zapewnia znacznie większą pojemność:

  • Opera 10.50+ pozwala na 5 MB
  • Safari 8 pozwala na 5 MB
  • Firefox 34 pozwala na 10 MB
  • Google Chrome pozwala na 10 MB na źródło
  • Internet Explorer pozwala na 10 MB na obszar pamięci

Przypadki użycia dla LocalStorage

LocalStorage doskonale nadaje się do przechowywania dużej ilości danych, do których serwer rzadko musi się odwoływać. Mogą to być ustawienia użytkownika aplikacji, szczegóły konfiguracji motywu lub dane w ostatnio wypełnionym formularzu. Dzieje się tak, ponieważ localStorage ma znacznie większy limit pamięci niż pliki cookie, ale musisz wykonać dodatkowy wysiłek, aby wysłać swoje dane na serwer.

Jeśli przechowujesz dane w formacie JSON, możesz przechowywać dość złożone dane przy użyciu localStorage, mimo że może przechowywać tylko ciągi.

LocalStorage jest podatny na Ataki XSS, więc nie powinieneś przechowywać w nim poufnych danych klienta.

Pamięć sesji

SessionStorage to działający magazyn klucz/wartość prawie taki sam jak localStorage, poza jedną rzeczą. Przechowywane dane są przechowywane tylko przez czas trwania sesji strony.

Przypadki użycia dla SessionStorage

Za pomocą SessionStorage można przechowywać ten sam typ danych co localStorage, ale tylko wtedy, gdy dane nie muszą być utrwalane poza sesją strony.

Indeksowana baza danych

IndexedDB to potężny interfejs API przeglądarki do przechowywania dużych ilości uporządkowanych danych. Jest to transakcyjna, obiektowa baza danych, która przechowuje dane w parach klucz/wartość.

Jeśli masz do czynienia z mniejszymi ilościami danych, localStorage/sessionStorage jest lepszym i łatwiejszym wyborem. Niestety są one ograniczone pojemnością pamięci i faktem, że mogą przechowywać tylko dane łańcuchowe. IndexedDB nie tylko umożliwia przechowywanie różnych typów danych, w tym plików/danych binarnych, ale może również przechowywać znacznie więcej danych. IndexedDB konstruuje również indeksy swojej zawartości, aby umożliwić szybkie przeszukiwanie bazy danych.

Przypadki użycia dla IndexedDB

IndexedDB jest zasadniczo bazą danych NoSQL w przeglądarce i może przechowywać bardzo duże ilości danych. Każdy przypadek użycia, który wymaga przechowywania ponad 10 MB danych, jest odpowiedni dla IndexedDB.

W przeciwieństwie do innych form przechowywania przeglądarki, IndexedDB nie ogranicza się do przechowywania ciągów. IndexedDB może przechowywać dane wszystkich standardowych typów JavaScript. Jeśli tworzysz aplikację internetową do pracy głównie w trybie offline, możesz użyć IndexedDB do przechowywania wszystkich danych aplikacji.

Pamięć masowa po stronie klienta jest elastyczna i wydajna

Termin przechowywanie po stronie klienta odnosi się do przechowywania danych aplikacji w przeglądarce. Pamięć masowa po stronie klienta jest niezbędna do funkcjonowania większości nowoczesnych aplikacji internetowych. Istnieją różne typy przechowywania po stronie klienta: cookies, local/sessionStorage i IndexedDB.

Wszystkie rodzaje pamięci przeglądarki mają różne limity pojemności i rodzaju danych, które mogą przechowywać. Pliki cookie są najbardziej ograniczonym typem, local/sessionStorage jest najwygodniejszy, a IndexedDB jest najpotężniejszy.