Andmete puhverdamine (ingl data caching) on protsess, mis salvestab andmeid või faile ajutisse salvestuskohta ehk vahemällu, et neile saaks kiiremini ligi pääseda. See salvestab andmeid tarkvararakenduste, serverite ja veebibrauserite jaoks, mis tagab, et kasutajad ei pea veebilehe või rakenduse laadimise kiirendamiseks iga kord teavet alla laadima.
Andmete dubleerimine (ing data replication) on protsess, mille käigus tehakse andmetest koopiaid ja hoitakse neid varundamise eesmärgil eri kohtades, kas samas süsteemis, füüsilises/virtuaalses serveris või pilvepõhiselt.
Andmete dubleerimine kasutatakse, et:
- parandada andmete kättesaadavust
- suurendada andmetele juurdepääsu kiirust
- parandada serveri jõudlust
- andmeid taastada
localStorage and sessionStorage
localStorage ja sessionStorage võimaldavad salvestada võtme-väärtuse paare lokaalselt. SessionStorage’i puhul andmed säilivad lehe uuendamisel ja localStorage’i puhul kuni kasutaja kustutab brauseri vahemälu käsitsi või kuni veebirakendus kustutab andmed.
Küpsised
Kui klient saadab serverile HTTP päringu, luuakse serveri TCP pordiga korraks sessioon, mis on kahesuunaline sidekanal, kuid HTTP on tehtud nii, et esmalt saadab klient päringu ja siis server vastab sellele ning katkestab kohe ühenduse ära. Kui klient soovib pärast seda teha uue päringu, peab ta looma uue TCP ühenduse aga serveri poolelt on näha ainult kliendi IP aadress ja port. Aga sama IP aadressi taga võib olla mitu klienti ja klient võib oma IP aadressi vahetada (nt WiFi ühenduselt 4G peale üle minnes või vastupidi). Seega kui klient uue päringu teeb, pole serveril aimugi, kas see on see sama klient või mitte.Küpsised (ingl cookies) on väikesed nimi=väärtus paarid, mida veebiserver saab kliendile saata ning mida klient võib serverile järgneva(te) päringu(te)ga tagasi saata, kuni küpsis aegub.
Küpsised võimaldavad serveril eristada kliente üksteisest ja võimaldavad sisselogimisfunksionaalsust, saidi eelistuste salvestamise funktsionaalsust, ostukorvi jms, mis eeldab, et server tunneb kliendi ära.
Kuidas localStorage töötab?
Kui küpsised on andmed, mis liiguvad päringute päistes, siis localStorage on brauseri funktsionaalsus, mis võimaldab kliendi poolsel Javascriptil (see JS, mis jookseb brauseris, mitte serveris, kuid mille server on üldjuhul kliendile käivitamiseks saatnud) kasutada kohalikku kõvaketast, et vajalikke andmeid seal hoida. Näiteks puhverdamise eesmärgil.
Oluline on see, et kui localStorage’isse midagi panna, siis teiste domeenide serveritest (või isegi samal domeenil, aga teise pordi otsas ja isegi http vs https on erinevad serverid localStoragei jaoks) ei saa seda lugeda. Piltlikult öeldes näiteks Facebook ei saa lugeda, mida Gmaili veebirakendus brauseri localStorage’isse pani.
LocalStorage objektil on viis meetodit:
key(): Antud number localStorage’i võtme leidmiseks
setItem(): Võtme ja väärtuse lisamiseks localStorage’isse
getItem(): localStorage’ist objekti väärtuste saamiseks
removeItem(): Elemendi objekti võtme järgi localStorage’ist eemaldamiseks
clear(): kogu localStorage’i tühjendamiseks
Näide
Allolevalt toome näite, kuidas localStorage’it saab andmete puhverdamiseks kasutada:

Selgitus:
Real 1 kontrollitakse, kas localStorage’is on miskit võtme widgetsCache all
Rida 2: kui localStorage’is oli selle võtme all miskit, antakse see widgetsCache’ile väärtuseks. Enne väärtustamist tehakse eeldus, et tegemist on JSON formaadis tekstiga ja teisendatakse see JSON-ist Javascript objektiks.
Rida 3: kui localStorage’is ei olnud selle võtme all midagi, antakse widgetsCache’ile väärtuseks võrgupäringu tulemusel saadud JSONist parsitud objekt (või mis iganes andmetüüp, mis parsimisel saadi).
Real 5 salvestatakse widgetsCachei hetkeväärtus localStorage’isse, et seda järgmisel korral ilma võrgupäringut tegemata saaks kasutada.