Direct naar de inhoud
xhosting

Cache-Control header

3 min. lezen

Wat is de Cache-Control header?

De Cache-Control header is een instructie die de webserver meestuurt bij elk bestand dat hij levert. Via deze header vertelt de server aan browsers en tussenliggende partijen of ze een kopie mogen bewaren, en hoe lang. Zonder die instructie kiest de browser zelf, wat minder voorspelbaar is.

De header is niet zichtbaar op de pagina. Hij zit in de technische reactie die de server terugstuurt, naast het bestand zelf. Browsers lezen hem automatisch en volgen de regels die erin staan.

Welke waarden Cache-Control kan hebben

Een header bevat één of meer instructies, gescheiden door komma's. De meest gebruikte zijn:

  • max-age: het aantal seconden dat een kopie geldig blijft. Een waarde van 31536000 komt overeen met ongeveer een jaar.
  • no-cache: de browser mag een kopie gebruiken, maar moet eerst bij de server controleren of er een nieuwere versie is.
  • no-store: er mag helemaal niets worden opgeslagen. Dit past bij gevoelige pagina's, zoals een inlogpagina.
  • public en private: bepalen of een gedeelde cache, zoals een CDN, de kopie mag bewaren, of alleen de browser van één bezoeker.

Zie ook wat browsercache is voor het effect van deze instructies op de browser van je bezoeker.

Expires, ETag en Last-Modified

Naast Cache-Control bestaan oudere en aanvullende headers. Expires geeft een vaste datum en tijd waarop een kopie verloopt. Wanneer Cache-Control aanwezig is, heeft die in moderne browsers meestal voorrang.

Een ETag is een soort vingerafdruk van een bestand. Bij een controle kan de browser die meesturen. Is het bestand niet veranderd, dan antwoordt de server kort, zonder het hele bestand opnieuw te sturen. Dat bespaart bandbreedte. Last-Modified werkt op vergelijkbare wijze, met een datum in plaats van een vingerafdruk.

Welke instellingen kunnen verkeerd uitpakken?

Een te lange cachetijd is het grootste risico. Een bezoeker ziet dan een verouderde versie tot de termijn verloopt, ook als je de pagina al hebt aangepast. Een te korte cachetijd heeft het omgekeerde effect: de server moet meer werk doen en bezoekers wachten langer.

Als vuistregel geldt: bestanden die zelden veranderen, zoals afbeeldingen en lettertypen, mogen lang worden bewaard, zeker als hun bestandsnaam verandert bij een nieuwe versie. Pagina's die vaak wijzigen of persoonlijke gegevens tonen, hebben een korte termijn of helemaal geen bewaring nodig. Welke instellingen bij jouw pakket mogelijk zijn, kun je aan je hoster vragen.

Een CDN houdt bij zijn eigen kopieën meestal rekening met deze headers. Lees wat een CDN is voor de werking daarvan.

Veelgestelde vragen

Waar stel ik de Cache-Control header in?

Dat hangt af van je hostingomgeving en je website. Op veel hostingpakketten stel je de header in via de webserverconfiguratie, een .htaccess-bestand of de instellingen van een cachingplugin. Ook een CDN kan headers aanpassen. Vraag je hoster welke mogelijkheden jouw pakket biedt voordat je iets wijzigt.

Is no-cache hetzelfde als no-store?

Nee. no-cache betekent dat een browser een kopie mag bewaren, maar elke keer eerst moet controleren of die nog actueel is. no-store betekent dat er helemaal niets mag worden opgeslagen. Voor gewone pagina's met publieke inhoud is no-cache vaak voldoende. Voor gevoelige pagina's, zoals een accountomgeving, kies je meestal no-store.

Wat is edge computing?

Edge computing laat code draaien op CDN-servers vlak bij de bezoeker. Lees waarvoor het dient, zoals redirects en A/B-tests, en waar de grenzen liggen...

Server caching

Server caching uitgelegd: hoe een webserver pagina's en databasegegevens bewaart, welke vormen er zijn en waarom het vooral dynamische sites helpt.

Wat is een CDN?

Een CDN levert bestanden van je website vanaf servers dicht bij de bezoeker. Lees wat een content delivery network doet, wat de origin is en hoe het w...