Hoe werkt een cookie?
Het HTTP-protocol onthoudt zelf niets tussen twee verzoeken. Cookies vullen dat gat. De server stuurt bij een antwoord een Set-Cookie-header mee met een naam en een waarde. De browser bewaart de cookie en stuurt hem bij volgende verzoeken aan dezelfde server terug in de Cookie-header.
Antwoord van de server:
Set-Cookie: taal=nl; Max-Age=2592000; Secure; HttpOnly
Volgend verzoek van de browser:
Cookie: taal=nl
Met attributen bepaalt de server hoe lang een cookie blijft bestaan en wanneer de browser hem meestuurt:
- Expires of Max-Age: zonder een van beide is het een sessiecookie. Die verdwijnt als de sessie in de browser eindigt. Met een datum of looptijd is het een permanente cookie.
- Secure: de browser stuurt de cookie alleen mee via een versleutelde HTTPS-verbinding.
- HttpOnly: JavaScript kan de cookie niet lezen. Dat helpt bijvoorbeeld een inlogsessie te beschermen tegen cross-site scripting.
- SameSite: bepaalt of en wanneer de cookie meegaat bij verzoeken vanaf andere sites.
Cookies zijn klein. De IETF-standaard RFC 6265 uit april 2011 vraagt browsers om minstens 4096 bytes per cookie en minstens 50 cookies per domein te ondersteunen.
Welke soorten cookies zijn er?
Je kunt cookies op verschillende manieren indelen:
| Indeling | Soorten |
|---|---|
| Doel | Sessiebeheer (inloggen, winkelwagen), personalisatie (taal, thema) en tracking (gedrag vastleggen en analyseren) |
| Partij | First-party cookies van de site in je adresbalk en third-party cookies van een ander domein |
| Looptijd | Sessiecookies verdwijnen na de sessie, permanente cookies na de ingestelde datum of looptijd |
| Wet | Functionele cookies, analytische cookies en tracking cookies |
De indeling naar wet bepaalt of je toestemming nodig hebt. Volgens de ACM mag je functionele cookies zonder toestemming plaatsen, zolang je bezoekers informeert. Dat geldt ook voor analytische cookies met weinig gevolgen voor de privacy. Voor tracking cookies en privacygevoelige analytische cookies is toestemming verplicht. Vooraf aangevinkte keuzes zijn verboden. Meer hierover lees je bij de cookiewet.
Verwar een cookie niet met
- localStorage en sessionStorage: opslag in de browser die nooit vanzelf naar de server gaat. Voor gegevens die alleen in de browser nodig zijn, raadt MDN deze opslag aan in plaats van cookies.
- Trackingpixel: een klein beeldje of script dat bij het laden een verzoek naar een andere server stuurt. Een pixel is zelf geen cookie. De ACM noemt web beacons die toegang geven tot informatie op de computer van de gebruiker wel een privacygevoelige techniek. Daarvoor heb je net als bij tracking cookies toestemming nodig.
Veelgestelde vragen over Cookie
Wat is een cookie in simpele woorden?
Een cookie is een geheugensteuntje van een website in je browser. Bij je volgende bezoek leest de site het weer uit. Zo hoef je niet steeds opnieuw in te loggen of je taal te kiezen.
Heb ik toestemming nodig voor cookies?
Dat hangt af van het soort cookie. Functionele cookies mogen zonder toestemming, als je ze wel meldt. Dat geldt ook voor analytische cookies met weinig gevolgen voor de privacy. Voor tracking cookies vraag je eerst toestemming.
Hoe groot mag een cookie zijn?
Browsers horen minstens 4096 bytes per cookie aan te kunnen. Meestal ligt de grens ook rond die 4 KB. Voor grotere hoeveelheden data gebruik je andere opslag in de browser.