Qu'est-ce qu'un CDN ?
Un CDN (Content Delivery Network), ou réseau de distribution de contenu, est un ensemble de serveurs geographiquement distribues qui mettent en cache et delivrent le contenu web aux utilisateurs depuis le point de présence (PoP) le plus proche. L'objectif est de réduire la latence, accélérer le chargement des pages et améliorer la disponibilité des sites web.
Fonctionnement technique
Quand un utilisateur accède à un site utilisant un CDN, le DNS résout le domaine vers le serveur edge le plus proche geographiquement. Si le contenu est en cache (cache hit), le serveur edge le renvoie directement sans contacter le serveur d'origine. Sinon (cache miss), le serveur edge récupère le contenu depuis l'origine, le met en cache selon les en-tetes Cache-Control et TTL, puis le livre à l'utilisateur. Les requêtes suivantes pour le même contenu seront servies depuis le cache.
Types de contenu et optimisations
Les CDN optimisent différents types de contenu : les assets statiques (images, CSS, JavaScript, polices) avec du cache longue durée, les vidéos avec l'adaptive bitrate streaming, et même le contenu dynamique avec du edge computing. Les optimisations incluent la compression (gzip, Brotli), la minification automatique, la conversion d'images (WebP, AVIF), le HTTP/2 et HTTP/3 (QUIC) pour la multiplexation, et le TLS termination au niveau du edge pour réduire la latence de handshake.
Sécurité et protection
Les CDN modernes intègrent des fonctions de sécurité : protection DDoS (absorption du trafic malveillant grâce à la capacité distribuee), WAF (Web Application Firewall) pour filtrer les requêtes malveillantes, gestion des certificats TLS automatique, et rate limiting par IP ou par région. Cloudflare, par exemple, est autant un CDN qu'une plateforme de sécurité web.
Fournisseurs et choix
Les principaux fournisseurs sont Cloudflare (genereux free tier, sécurité integree), AWS CloudFront (intégration AWS native), Fastly (edge computing avance, Varnish-based), Akamai (le plus ancien et vaste réseau), et Vercel/Netlify (CDN optimise pour les frameworks frontend). Le choix dépend du budget, des besoins en edge computing, de la couverture géographique, et de l'intégration avec l'infrastructure existante.