Sesija un lokālā krātuve ir pārlūkprogrammas krātuves metodes, kas ļauj uzglabāt datus kopā ar bezstāvokļa HTTP pieprasījumiem. Tie ir alternatīva uz sīkfailiem balstītai krātuvei, un tos var plaši izmantot tīmekļa izstrādē.

Lai gan tie darbojas ļoti līdzīgi, ir būtiskas atšķirības, kas jums jāzina.

Vietējā krātuve un sesiju krātuve: kādi ir to lietojumi?

Lokālā un sesijas krātuve ir JavaScript API, ko varat izmantot datu glabāšanai klienta pusē. Tie ļauj vietnei saglabāt datus pārlūkprogrammā un uzdod pārlūkprogrammai piekļūt tiem vēlāk.

Atkarībā no jūsu vajadzībām datu glabāšanai varat izmantot lokālo vai sesijas krātuvi. Abas uzglabāšanas metodes ir līdzīgas sīkfailiem, bet bez tām tas pats privātums attiecas uz sīkfailiem. Tāpēc lielākā daļa mūsdienu vietņu izvēlas izmantot tikai tīmekļa glabāšanas metodes vai kombinēt tās ar sīkfailiem kā rezerves.

Atšķirībā no sīkfailiem, vietējā krātuve un sesijas krātuve nesūta datus uz serveri, izmantojot HTTP galvenes. Jums tie jāizmanto tikai klienta puses funkcionalitātei.

instagram viewer

Turklāt vietējai un sesijas krātuvei katram domēnam ir aptuveni 5 MB krātuves ierobežojums. Tie nodrošina vairāk uzglabāšanas nekā sīkfaili, kuru ietilpība ir tikai 4 KiB uz vienu sīkfailu.

Kas ir sesiju krātuve?

Pārlūkošanas sesija aptuveni parāda, kā izmantojat vietni. Ja apmeklējat vietni, nedaudz pārlūkojat apkārtni un pēc tam izslēdzat datoru, varat uzskatīt šo laiku kā vienu sesiju. Jūsu pārlūkprogrammas konfigurācija var to mainīt smalkos veidos, taču sesijas mērķis ir atspoguļot laika daļu, kas pavadīta mijiedarbībā ar vietni.

Sesiju krātuve ir unikāla katrai pārlūkprogrammas cilnei. Atverot jaunu cilni un pārejot uz to pašu vietni, tiks sākta jauna sesija ar savu krātuvi. Tomēr, ja pārlūkprogrammā izmantojat funkciju "dublēt cilni", tā var atkārtoti izmantot to pašu sesiju. Jūs nevarat pārāk paļauties uz konkrētām "sesijas" detaļām. Tā vietā koncentrējieties uz galveno koncepciju: sesijas krātuve ir īslaicīga.

Sesiju krātuvē ir iebūvētas API metodes darbam ar atslēgas/vērtības pāra datiem. Jūs varat saglabāt datus no JavaScript kā tā:

sessionStorage.setItem("atslēga", "vērtība");

Un, lai izgūtu saglabāto vērtību:

sessionStorage.getItem("atslēga");

Ņemiet vērā, ka abi taustiņu un vērtību ir tikai virkņu veidi. Ja vēlaties saglabāt citu veidu, jums tas tieši vai netieši jāpārvērš par virkni.

Kas ir vietējā krātuve?

Vietējā krātuvē tiek saglabāti dati par visiem vietnes gadījumiem neatkarīgi no tā, vai tie atrodas dažādās cilnēs vai logos. Tas ir arī pastāvīgs, tāpēc, aizverot pārlūkprogrammu, dati nepazudīs.

Atverot vietni, kurā iepriekš tika izmantota vietējā krātuve, tai vienmēr būs piekļuve šiem saglabātajiem datiem.

Kā tīmekļa izstrādātājs varat izmantot šo mehānismu, lai saglabātu datus par lietotāju. Dažas vietnes to var izmantot, lai saglabātu pieteikšanos vai nodrošinātu personalizētāku pieredzi.

Tāpat kā sesijas krātuve, varat iestatīt lokālās krātuves objektu ar vienu JavaScript koda rindiņu:

localStorage.setItem("atslēga", "vērtība");

Lai piekļūtu atslēgas vērtībai:

localStorage.getItem("atslēga");

Ņemiet vērā, ka šīs metodes darbojas tāpat kā sesijas glabāšana, tās tikai izmanto cita veida datu krātuvi.

Lai gan sesijas krātuve notīra datus, tiklīdz sesija beidzas, vienīgais veids, kā notīrīt vietējo krātuvi, ir tos skaidri dzēst. Abi krātuves veidi piedāvā divas datu dzēšanas metodes. Pirmais noņem konkrētu datu vienumu, pamatojoties uz tā atslēgu:

localStorage.removeItem("atslēga");

Varat arī noņemt visus jūsu vietnē saglabātos datus neatkarīgi no to atslēgas.

localStorage.clear();

Vairāk par šīm tīmekļa krātuves API metodēm varat uzzināt vietnē javascript.info tīmekļa vietne.

Kad jums nepieciešama vietējā krātuve?

Tā kā vietējā krātuve ir pastāvīga, vislabāk ir saglabāt datus lietotāju apmeklējumu laikā. Ja vēlaties saglabāt vietnes preferences vai saglabāt kešatmiņu ilgtermiņa datus, vietējā krātuve ir piemērota. Iespējams, nevēlaties saglabāt sensitīvākus datus, izmantojot vietējo krātuvi, jo tā ir pastāvīga.

Tā kā vietējā un sesijas krātuve ir priekšgala metodes, iespējams, vēlēsities izvairīties no to izmantošanas servera funkcijām, piemēram, lietotāja pieteikšanās. Šādos gadījumos kā alternatīvu varat apsvērt sīkfailus.

Kad nepieciešama sesijas krātuve?

Ja vēlaties saglabāt datus tikai tad, kad lietotājs mijiedarbojas ar jūsu vietni, sesijas krātuve ir ideāla. Tas varētu būt īstermiņa kešatmiņas vai lietojuma datiem par konkrētu jūsu vietnes apmeklējumu.

Sesijas krātuve ir labāka sensitīvākas informācijas glabāšanai, jo tai beidzas derīguma termiņš.

Vietējā krātuve vs. Sesiju krātuve: kas ir drošāks?

Kā redzējāt, vietējās un sesiju uzglabāšanas metodes daudzējādā ziņā ir līdzīgas, taču tām joprojām ir pielāgoti lietošanas gadījumi. Nevar uzskatīt, ka tās ir drošas, jo tās ir priekšgala tehnoloģijas, kurām JavaScript var piekļūt. Tomēr sesiju glabāšana ir ļoti ērta, un tās pagaidu raksturs ir pārliecinošs.

Vietējā krātuve ir pastāvīga, tāpēc tā var radīt papildu drošības problēmas. Ikviens, kurš atver pārlūkprogrammu, teorētiski var piekļūt vietējai krātuvei. Jums vajadzētu būt informētam par kā darbojas XSS uzbrukumi un kā tos novērst.

Vietējā krātuve vai sesijas krātuve: kuru jums vajadzētu izmantot?

Sesiju glabāšana ir nedaudz drošāka tās pagaidu rakstura dēļ. Tomēr tīmekļa glabāšanas metodes izvēle ir atkarīga no jūsu prasībām. JavaScript krātuve ir vispiemērotākā lietošanai tikai klienta pusē. Taču tas piedāvā ērtu pārlūkprogrammas datu krātuvi un ir ļoti viegli lietojams.

Atcerieties: lai gan vietējā krātuve datus glabā vairākās cilnēs, sesijas krātuve lielākoties katrai cilnei ir unikāla. Jums ir jānodrošina, lai jūsu lietotne veiktu pēc iespējas mazāk pieņēmumu un atbilstu īpašiem gadījumiem.

Sīkfaili ir senāks datu noturības veids, taču tie joprojām tiek plaši izmantoti. Iespējams, vēlēsities tos pārbaudīt, vai nav datu, kas jāpārsūta uz serveri.