Sobes.tech
Junior

Selgitage erinevust küpsiste, sessionStorage ja localStorage vahel.

sobes.tech AI

Vastus AI-lt

Küpsised, sessionStorage ja localStorage on veebipõhised salvestusmehhanismid, mis erinevad eesmärgi, eluea ja salvestatud andmete mahu poolest.

  • Küpsised: Väikesed andmefragmendid, mida veebiserver saadab ja salvestab kasutaja arvutisse veebibrauseri kaudu. Saadetakse iga järgmise päringuga samale serverile. Kasutatakse autentimiseks, kasutaja eelistuste salvestamiseks, ostukorvi oleku jälgimiseks.

    • Eluaeg: Määratakse loomise ajal (võib olla sessiooniline või kindla aegumisega).
    • Maht: Piiratud, tavaliselt mõned kilobaiti (umbes 4 KB).
  • sessionStorage: Salvestab andmeid ainult ühe sessiooni jooksul (avatud vahelehel või aknas). Andmed kustutatakse vahelehe või akna sulgemisel.

    • Eluaeg: Kuni vahelehe või akna sulgemiseni.
    • Maht: Märkimisväärselt suurem kui küpsistel (tavaliselt mõned megabaiti).
  • localStorage: Salvestab andmeid ilma aegumise piiranguta, kuni kasutaja või skript need eemaldab. Saadaval kõigis vahelehtedes ja akendes samal domeenil.

    • Eluaeg: Püsiv (kuni eemaldatakse).
    • Maht: Märkimisväärselt suurem kui küpsistel (tavaliselt mõned megabaiti).

Siin on lühike võrdlus:

Mehhanism Eluaeg Juurdepääs Saadetakse serverile Maht (tavaline) Otstarve
Cookies Sessiooni või aegumisega HTTP päiste kaudu Jah ~4 KB Autentimine, jälgimine, eelistused
sessionStorage Kuni vahelehe või akna sulgemiseni JS API kaudu Ei ~5-10 MB Ajutine sessiooni andmete salvestamine
localStorage Püsiv (kuni eemaldatakse) JS API kaudu Ei ~5-10 MB Pikaajaline andmete salvestamine

JavaScript API näited:

// Cookies (saadaval document.cookie kaudu, nõuab käsitsi analüüsi ja serialiseerimist)
document.cookie = "username=John Doe; expires=Thu, 18 Dec 2023 12:00:00 UTC; path=/";

// sessionStorage
sessionStorage.setItem('id', '123');
let userId = sessionStorage.getItem('id');
sessionStorage.removeItem('id');

// localStorage
localStorage.setItem('theme', 'dark');
let userTheme = localStorage.getItem('theme');
localStorage.removeItem('theme');
localStorage.clear(); // Tühjendab kõik andmed localStorage'is