Sessie en lokale opslag zijn browseropslagmethoden waarmee u gegevens kunt opslaan naast staatloze HTTP-verzoeken. Ze zijn een alternatief voor op cookies gebaseerde opslag en hebben veel toepassingen bij webontwikkeling.
Hoewel ze op een zeer vergelijkbare manier werken, zijn er aanzienlijke verschillen waar u op moet letten.
Lokale opslag en sessieopslag: wat zijn hun toepassingen?
Lokale en sessieopslag zijn JavaScript-API's die u kunt gebruiken om gegevens aan de clientzijde op te slaan. Ze stellen een website in staat om gegevens in de browser op te slaan en de browser instrueren om deze later te openen.
Afhankelijk van uw behoeften kunt u lokale of sessieopslag gebruiken om gegevens op te slaan. Beide opslagmethoden zijn vergelijkbaar met cookies, maar zonder dezelfde privacykwesties rondom cookies. Daarom geven de meeste moderne websites er de voorkeur aan om alleen webopslagmethoden te gebruiken of ze te combineren met cookies als fallback.
In tegenstelling tot cookies sturen lokale opslag en sessieopslag geen gegevens naar de server via HTTP-headers. Gebruik ze alleen voor client-side functionaliteit.
Bovendien hebben lokale en sessieopslag elk een opslaglimiet van ongeveer 5 MB per domein. Ze bieden meer opslagruimte dan cookies, die slechts een capaciteit van 4 KiB per cookie hebben.
Wat is sessieopslag?
Een browsesessie benadert uw gebruik van een website. Als je een site bezoekt, wat rondkijkt en vervolgens je computer uitzet, kun je die tijd zien als een enkele sessie. Uw browserconfiguratie kan dit op subtiele manieren veranderen, maar een sessie is bedoeld om het deel van de tijd weer te geven dat u met een site omgaat.
Sessieopslag is uniek voor elk browsertabblad. Als u een nieuw tabblad opent en naar dezelfde site navigeert, start u een nieuwe sessie met een eigen opslag. Als u echter een functie "dubbel tabblad" in uw browser gebruikt, kan die dezelfde sessie opnieuw gebruiken. Je kunt niet te veel vertrouwen op de specifieke details van een "sessie". Focus in plaats daarvan op het kernconcept: sessieopslag is tijdelijk.
Sessieopslag heeft ingebouwde API-methoden om te werken met sleutel/waarde-paargegevens. U kunt gegevens opslaan van JavaScript zoals zo:
sessionStorage.setItem("sleutel", "waarde");
En om de opgeslagen waarde op te halen:
sessionStorage.getItem("sleutel");
Merk op dat beide sleutel en waarde zijn alleen stringtypes. Als u een ander type wilt opslaan, moet u dit expliciet of impliciet naar een tekenreeks converteren.
Wat is lokale opslag?
Lokale opslag houdt gegevens bij over alle instanties van een site, of ze zich nu in verschillende tabbladen of vensters bevinden. Het is ook permanent, zodat de gegevens niet verdwijnen wanneer u uw browser sluit.
Wanneer u een website opent die eerder lokale opslag gebruikte, heeft deze altijd toegang tot die opgeslagen gegevens.
Als webontwikkelaar kunt u dit mechanisme gebruiken om gegevens over een gebruiker te bewaren. Sommige websites kunnen dit gebruiken om u ingelogd te houden of om een meer gepersonaliseerde ervaring te bieden.
Net als bij sessieopslag kunt u een lokaal opslagobject instellen met één regel JavaScript-code:
localStorage.setItem("sleutel", "waarde");
Om toegang te krijgen tot de waarde van de sleutel:
localStorage.getItem("sleutel");
Merk op dat deze methoden op dezelfde manier werken als sessieopslag, ze gebruiken alleen een ander type gegevensopslag.
Hoewel sessieopslag gegevens wist zodra de sessie eindigt, is de enige manier om lokale opslag te wissen, deze expliciet te verwijderen. Beide opslagtypes bieden twee methoden om gegevens te wissen. De eerste verwijdert een specifiek gegevensitem op basis van de sleutel:
localStorage.removeItem("sleutel");
U kunt ook alle gegevens verwijderen die door uw site zijn opgeslagen, ongeacht de sleutel:
localStorage.clear();
U kunt meer te weten komen over deze API-methoden voor webopslag op de: javascript.info website.
Wanneer heb je lokale opslag nodig?
Aangezien lokale opslag permanent is, kunt u het beste gegevens bewaren tijdens gebruikersbezoeken. Als u sitevoorkeuren wilt opslaan of langetermijngegevens in de cache wilt opslaan, is lokale opslag geschikt. Misschien wilt u geen gevoeligere gegevens opslaan met lokale opslag, omdat deze permanent is.
Aangezien lokale en sessieopslag front-endmethoden zijn, wilt u ze misschien niet gebruiken voor servergebaseerde functies zoals gebruikersaanmelding. In deze gevallen zou je cookies als alternatief kunnen overwegen.
Wanneer heb je sessieopslag nodig?
Als u alleen gegevens wilt opslaan terwijl een gebruiker interactie heeft met uw site, dan is sessieopslag ideaal. Dit kan zijn voor caching op korte termijn of gebruiksgegevens over een specifiek bezoek aan uw site.
Sessieopslag is beter voor het opslaan van gevoeligere informatie, aangezien deze verloopt.
Lokale opslag vs. Sessieopslag: wat is veiliger?
Zoals je hebt gezien, zijn lokale en sessie-opslagmethoden in veel opzichten vergelijkbaar, maar hebben ze nog steeds op maat gemaakte gebruiksscenario's. U moet geen van beide als veilig beschouwen, omdat het front-end-technologieën zijn waar JavaScript toegang toe heeft. Sessieopslag is echter erg handig en het tijdelijke karakter ervan is geruststellend.
Lokale opslag is permanent, dus het kan extra beveiligingsproblemen opleveren. Iedereen die een browser opent, heeft in theorie toegang tot lokale opslag. Je moet op de hoogte zijn van hoe XSS-aanvallen werken en hoe je ze kunt voorkomen.
Lokale opslag of sessieopslag: welke moet u gebruiken?
Sessieopslag is iets veiliger vanwege het tijdelijke karakter. Uw keuze voor een webopslagmethode hangt echter af van uw vereisten. JavaScript-opslag is het meest geschikt voor gebruik aan de clientzijde. Maar het biedt een handige browsergebaseerde gegevensopslag en is heel gemakkelijk te gebruiken.
Onthoud dat terwijl lokale opslag gegevens op verschillende tabbladen opslaat, sessieopslag voor het grootste deel uniek is voor elk tabblad. U moet ervoor zorgen dat uw app zo min mogelijk aannames doet en rekening houdt met randgevallen.
Cookies zijn een oudere vorm van gegevenspersistentie, maar ze worden nog steeds veel gebruikt. Misschien wilt u ze controleren op gegevens die u naar de server moet verzenden.