4.2 cookies & caching
Cookies
Een HTTP-cookie (webcookie, browsercookie) is een klein stukje gegevens dat een server naar de webbrowser van een gebruiker stuurt. De browser kan de cookie opslaan en bij latere verzoeken terugsturen naar dezelfde server. Meestal wordt een HTTP-cookie gebruikt om te zien of twee verzoeken van dezelfde browser komen, bijvoorbeeld door een gebruiker ingelogd te houden. Het onthoudt stateful informatie voor het stateless HTTP-protocol.
Cookies worden voornamelijk gebruikt voor drie doeleinden:
Sessiebeheer:
Logins, winkelwagentjes, spelscores of iets anders dat de server moet onthouden.
Personalisatie:
Gebruikersvoorkeuren, thema's en andere instellingen.
Tracken:
Gebruikersgedrag registreren en analyseren.
Cookies werden ooit gebruikt voor algemene opslag aan de clientzijde. Hoewel dit logisch was toen dit de enige manier was om gegevens op de client op te slaan, worden nu moderne opslag-API's aanbevolen. Bij elk verzoek worden cookies verzonden, hierdoor kunnen ze de prestaties verslechteren. Moderne API's voor clientopslag zijn de Web Storage API (localStorage en sessionStorage) en IndexedDB.
Cookies worden vaak door 3e partijen in jouw website geïnjecteerd. Bijvoorbeeld door sociale media plugins voor volg- en like-knoppen of door websites die bijhouden wie jouw website bezoekt.
Caching
De prestaties van websites en applicaties kunnen aanzienlijk worden verbeterd door eerder opgehaalde bronnen opnieuw te gebruiken. Webcaches verminderen latentie en netwerkverkeer en verminderen zo de tijd die nodig is om resourcerepresentaties weer te geven. HTTP-caching maakt websites sneller en reactiever.
Er bestaan verschillende soorten cache. Maar voor het doel van deze cursus gaan we kijken naar lokale (private) cache. We bedoelen hiermee de gegevens die een browser zelf onthoudt van een vorige opvraging.
Wanneer je met een browser voor het eerst een webpagina bekijkt, zal deze bepaalde onderdelen (afbeelding, script, stylesheet, teksten, ..) opslaan in zijn lokaal geheugen. Hierdoor zal bij een latere opvraging de website sneller geladen worden.
Jij kan als webontwikkelaar zelf aangeven aan de browser welke data deze wel of niet moet bijhouden. Dit kan op het niveau van de server gebeuren. Maar aangezien wij daar vaak geen controle over hebben, gebruiken we vaak "query string".
Door een vraagteken met versienummer toe te voegen achter de naam van onze stylesheet, kunnen we bij een vernieuwing van het document zelf controleren wanneer de browser een nieuwe versie zal ophalen. Namelijk, wanneer we dit getal veranderen.
Last updated