Wat is caching?

3 augustus, 2014
Vragen & antwoorden
Webhosting, VPS, Servers, Caching, Performance

Caching is een proces waarbij een (nood)voorraad van artikelen wordt aangelegd op een veilige plaats. In de wereld van computers en (web)hosting, is een cache een vaak tijdelijke opslagplaats van kopie├źn van informatie. De twee belangrijkste redenen hiervoor zijn enerzijds het versnellen van de toegang tot de gegevens, en anderzijds redundantie: de gegevens beschikbaar kunnen maken op een moment dat de bron niet bereikbaar is.

De meeste besturingssystemen, zoals Windows, Mac OS X en Linux, maken gebruik van het snelle computergeheugen om gegevens die vanaf een tragere harde schijf of ander medium worden gelezen, tijdelijk in op te slaan. Bij een volgend verzoek van de gebruiker om diezelfde gegevens, kan het systeem veel sneller reageren. Ook bij het schrijven van gegevens, zoals wanneer een document actief door de gebruiker bewerkt wordt, zal het systeem deze vaak eerst snel in het geheugen opslaan, en pas op een later moment naar de harde schijf weggeschrijven (flushing).

Zoekmachines maken bijvoorbeeld gebruik van een cache om gevonden webpagina's in op te slaan. Wanneer iemand een webpagina vanuit de zoekresultaten wil openen, maar de server waarop de website staat is niet bereikbaar, dan kan hij of zij in plaats daarvan de meest recente versie van het document uit de cache van de zoekmachine halen, zodat de inhoud van de webpagina toch te lezen is.

Content Delivery Networks (CDN) passen de caching-techniek toe om bestanden, zoals afbeeldingen en video's, te verspreiden over een wereldwijd netwerk van servers, met als doel de bezoeker van een website deze bestanden zo snel mogelijk, vanaf de dichtstbijzijnde server, te laten downloaden.

Caching wordt ook wel ingezet om webpagina's die dynamisch gegenereerd zijn, bijvoorbeeld aan de hand van gegevens uit een database en een scriptingtaal als PHP, tijdelijk in statische vorm op te slaan in het geheugen of op een harde schijf, zodat het bij een volgend verzoek niet opnieuw gegenereerd hoeft te worden, en zo sneller en zonder alteveel belasting van de systeembronnen aan de gebruiker geserveerd kan worden.