Session och lokal lagring är webbläsarlagringsmetoder som låter dig lagra data tillsammans med tillståndslösa HTTP-förfrågningar. De är ett alternativ till cookie-baserad lagring och har många användningsområden inom webbutveckling.

Även om de fungerar på ett mycket liknande sätt, finns det betydande skillnader du bör vara medveten om.

Lokal lagring och sessionslagring: vad har de för användning?

Lokal lagring och sessionslagring är JavaScript API: er som du kan använda för att lagra data på klientsidan. De tillåter en webbplats att lagra data i webbläsaren och instruerar webbläsaren att komma åt den senare.

Beroende på dina behov kan du använda lokal lagring eller sessionslagring för att lagra data. Båda lagringsmetoderna liknar cookies men utan samma sekretessproblem gäller kring cookies. Därför föredrar de flesta moderna webbplatser att endast använda webblagringsmetoder eller kombinera dem med cookies som en reserv.

Till skillnad från cookies skickar inte lokal lagring och sessionslagring data till servern via HTTP-huvuden. Du bör endast använda dem för funktionalitet på klientsidan.

instagram viewer

Dessutom har lokal lagring och sessionslagring vardera en lagringsgräns på cirka 5 MB per domän. De ger mer lagring än cookies, som bara har en kapacitet på 4 KiB per cookie.

Vad är sessionslagring?

En surfsession uppskattar din användning av en webbplats. Om du besöker en sida, surfar runt en stund och sedan stänger av din dator, kan du se den tiden som en enda session. Din webbläsarkonfiguration kan ändra detta på subtila sätt, men en session syftar till att representera den tid du interagerar med en webbplats.

Sessionslagring är unik för varje webbläsarflik. Om du öppnar en ny flik och navigerar till samma webbplats, startar du en ny session med egen lagring. Men om du använder en "duplicerad flik"-funktion i din webbläsare, kan det återanvända samma session. Du kan inte lita för mycket på de specifika detaljerna i en "session". Fokusera istället på kärnkonceptet: sessionslagring är tillfällig.

Sessionslagring har inbyggda API-metoder för att arbeta med nyckel-/värdepardata. Du kan lagra data från JavaScript såhär:

sessionStorage.setItem("nyckel", "värde");

Och för att hämta det lagrade värdet:

sessionStorage.getItem("nyckel");

Observera att båda nyckel- och värde är endast strängtyper. Om du vill lagra en annan typ måste du konvertera den till en sträng, explicit eller implicit.

Vad är lokal lagring?

Lokal lagring upprätthåller data över alla instanser av en webbplats, oavsett om de är i olika flikar eller fönster. Det är också permanent, så att data inte försvinner när du stänger din webbläsare.

När du öppnar en webbplats som tidigare använde lokal lagring kommer den alltid att ha tillgång till den lagrade informationen.

Som webbutvecklare kan du använda den här mekanismen för att behålla data om en användare. Vissa webbplatser kan använda detta för att hålla dig inloggad eller ge en mer personlig upplevelse.

Precis som sessionslagring kan du ställa in ett lokalt lagringsobjekt med en rad JavaScript-kod:

localStorage.setItem("nyckel", "värde");

För att komma åt nyckelns värde:

localStorage.getItem("nyckel");

Observera att dessa metoder fungerar på samma sätt som sessionslagring, de använder bara en annan typ av datalagring.

Medan sessionslagring rensar data så snart sessionen slutar, är det enda sättet att rensa lokal lagring att uttryckligen ta bort den. Båda lagringstyperna erbjuder två metoder för att rensa data. Den första tar bort en specifik datapost baserat på dess nyckel:

localStorage.removeItem("nyckel");

Du kan också ta bort all data som lagras på din webbplats, oavsett dess nyckel:

localStorage.clear();

Du kan lära dig mer om dessa webblagrings-API-metoder på javascript.info hemsida.

När behöver du lokal förvaring?

Eftersom lokal lagring är beständig är det din bästa insats att behålla data över användarbesök. Om du vill lagra webbplatspreferenser eller cachelagra långtidsdata är lokal lagring lämplig. Du kanske inte vill lagra känsligare data med lokal lagring, eftersom den är permanent.

Eftersom lokal lagring och sessionslagring är front-end-metoder, kanske du vill undvika att använda dem för serverbaserade funktioner som användarinloggning. Du kan överväga cookies som ett alternativ i dessa fall.

När behöver du sessionslagring?

Om du bara vill lagra data medan en användare interagerar med din webbplats, är sessionslagring idealisk. Detta kan vara för kortvarig cachelagring eller användningsdata om ett specifikt besök på din webbplats.

Sessionslagring är bättre för att lagra mer känslig information eftersom den löper ut.

Lokal lagring vs. Sessionslagring: Vilket är säkrare?

Som du har sett liknar lokala och sessionslagringsmetoder på många sätt men har fortfarande skräddarsydda användningsfall. Du bör inte överväga att båda är säkra eftersom de är front-end-tekniker som JavaScript har tillgång till. Sessionslagring är dock mycket bekvämt, och dess tillfälliga karaktär är betryggande.

Lokal lagring är permanent så det kan innebära ytterligare säkerhetsproblem. Alla som öppnar en webbläsare kan i teorin komma åt lokal lagring. Du bör vara medveten om hur XSS-attacker fungerar och hur man kan förhindra dem.

Lokal lagring eller sessionslagring: vilket ska du använda?

Sessionslagring är något säkrare på grund av dess tillfälliga karaktär. Men ditt val av webblagringsmetod beror på dina krav. JavaScript-lagring är mest lämplig endast för användning på klientsidan. Men den erbjuder ett bekvämt webbläsarbaserat datalager och är mycket lätt att använda.

Kom ihåg att medan lokal lagring lagrar data på flera flikar, är sessionslagring unik för varje flik, för det mesta. Du bör se till att din app gör så få antaganden som möjligt och tillgodoser kantfall.

Cookies är en äldre form av databeständighet, men de används fortfarande mycket. Du kanske vill kolla upp dem för data som du behöver överföra till servern.