Een Content Delivery Network (CDN) is een netwerk van servers verspreid over verschillende datacenters in de wereld. Een CDN maakt het mogelijk om een website of webapplicatie wereldwijd aan te bieden en te ontwikkelen. Wanneer je aangesloten bent bij een dergelijk netwerk, zorgt je webserver er automatisch voor dat je ook met een aantal andere servers verbonden wordt. Met behulp van een distributiesysteem wordt de statische content van een webserver overgebracht naar de server die het zal verwerken, ook wel replicaserver genoemd. Wanneer gebruikers bepaalde gegevens van de website opvragen, zal een request-routingsysteem bepalen welke server in het CDN het meest geschikt is voor de overdracht van de gegevens. Het aantal servers en de verdeling ervan is afhankelijk van de CDN provider, evenals de integratie van een krachtig backbone-netwerk.
Gebruikers merken tijdens het surfen niet of de gegevens die ze opvragen rechtstreeks van de oorspronkelijke server komen, of van de replicaserver; dit proces speelt zich namelijk op de achtergrond in het CDN af. Het enige dat de gebruiker zal merken, is de korte laadtijd van de opgevraagde gegevens.
De twee belangrijkste componenten met betrekking tot het CDN proces zijn het verdelings-/ distributiesysteem en het request-routingsysteem. Het distributiesysteem zorgt er niet alleen voor dat de content wordt overgedragen aan de replicaserver, maar ook voor de actualiteit en de correctheid ervan. Dit kan op twee manieren: het distributiecentrum verzendt de nieuwe en geüpdatete gegevens direct aan alle servers van het CDN, of er wordt alleen een bericht gestuurd aan de replicaserver en vermeld dat de actuele gegevens beschikbaar zijn. Indien nodig kunnen deze opgevraagd worden.
De eerste stap is het vinden van de server die het beste het verzoek van de gebruiker kan beantwoorden. Hiervoor richt het request-routingsysteem zich op specifieke prestatie-indicatoren, die door verschillende meetmethoden bepaald worden. De verschillende prestatie-indicatoren geven bijvoorbeeld aan of het om een verbinding gaat vanaf de browser van de client (client-side) of vanaf de webserver (server-side). Aan de hand van de gemeten waarden van de server-side, waartoe het algemene CPU-gebruik of het aantal actieve verzoeken op de server behoren, wordt de replicaserver met de laagste belasting gekozen. Op basis van de eigenschappen van de verbinding tussen client en server bepaalt het request-routingsysteem van de server de beste verbinding met de client. De factoren die in acht genomen worden, zijn onder meer de latentieperiode, de gemiddelde overdrachtssnelheid, de pakketverliezen en ook de geografische ligging. De prestatie-indicatoren aan de kant van de client bieden informatie over de identiteit van gebruikers die de aanvraag doen. Deze gegevens worden door het systeem gebruikt, wanneer de geleverde kwaliteit voor bijvoorbeeld standaard en premium klanten van elkaar afwijkt. De weging van de verschillende prestatie-indicatoren is bovendien afhankelijk van de opgevraagde gegevens. Zo zal bij dynamisch gegenereerde content eerder een server met goede prestatie-indicatoren nodig zijn, terwijl een stabiele verbinding tussen client en server het beste is bij gebruik van streamingmedia.
Wanneer de doelserver in het Content Delivery Network is bepaald, zal het request-routingsysteem het verzoek doorsturen; dit is stap twee in het proces. Voor deze zogenoemde “request redirection” zijn verschillende methoden, die vooral afhankelijk zijn van de plaats waar de request redirection in gang wordt gezet; bij de client, op het netwerk of op de replicaserver.
Het doorsturen van het verzoek van de client is een eenvoudig te implementeren methode, waarbij de client een lijst aan replicaservers gepresenteerd krijgt waaruit gekozen kan worden. Dit heeft echter als nadeel dat het Content Delivery Network maar weinig invloed heeft op de toewijzing. Ook de HTTP-302-redirection aan de server-side is gemakkelijk te implementeren en bevat bovendien goede informatie over het CDN. De uitgaande server antwoordt in dit geval op het verzoek met de HTTP-statuscode en deelt zo de juiste replicaserver mee aan de client, die deze vervolgens automatisch contacteert. Het grootste nadeel van deze methode is de verdubbeling van de benodigde verbindingen.
De meest gebruikte doorstuurmethode is de DNS-gebaseerde request-routing. Bij deze methode wordt het verzoek van de client aan een lokale DNS-server naar een speciale DNS-server binnen het Content Delivery Network doorgestuurd. Deze antwoordt hier op zijn beurt weer op met het IP-adres van een replicaserver. Het grootste nadeel van deze methode is dat door het herhaaldelijk opzoeken van gegevens in het domeinnaamsysteem, de toegang vertraagd wordt.
Doordat de servers van een Content Delivery Network wereldwijd verspreid zijn, profiteren clients van snelle laadtijden en een lager gebruik van de bandbreedte. Maar ook websitebeheerders profiteren met een Content Delivery Network van aanzienlijke voordelen. Door het doorsturen van verzoeken wordt namelijk niet alleen de belasting op de webservers geminimaliseerd, maar ook de veiligheid van cachegegevens verhoogd. Dit komt omdat aanvallen, zoals bijvoorbeeld DDoS-aanvallen, de uitgaande server niet bereiken. Hiervoor is het overigens wel vereist dat gevoelige gegevens, zoals gebruikersgegevens en wachtwoorden, niet in het CDN terecht komen. Deze gegevens kunnen potentiële aanvallen verhogen, maar ook gegevensconflicten veroorzaken. Verder is het aan te raden om een eigen domein voor de uitgegeven CDN-inhoud toe te wijzen. Op deze manier wordt verspreiding van mogelijke aanvallen op andere websites voorkomen. Onderstaande lijst vat de voordelen van een CDN samen: