Un CDN peut accélérer votre site Web. Voici ce que vous devez savoir!
Un réseau de diffusion de contenu (CDN) est conçu pour réduire la charge sur vos serveurs Web principaux en mettant en cache vos actifs statiques sur un réseau de serveurs. Ces serveurs seront plus proches des utilisateurs, ce qui peut accélérer vos temps de chargement.
Sommaire
Comment fonctionnent les CDN?
Sans CDN, un utilisateur ferait une demande à votre serveur Web, qui enverrait le code HTML, les images, les fichiers JavaScript et tout autre élément dont votre site a besoin. Le serveur peut également interroger une base de données pour demander du contenu, comme c’est le cas avec les systèmes de gestion de contenu comme WordPress. Tout cela met beaucoup de pression sur votre serveur Web pour une seule demande.
Un CDN ne remplace pas votre serveur Web; il se situe entre l’utilisateur et le serveur Web et met en cache le contenu de votre site. Chaque point de terminaison CDN est appelé un point de présence (PoP), et la plupart des fournisseurs CDN en auront des centaines répartis dans le monde entier. Le fait d’avoir un PoP physiquement proche de l’utilisateur final réduit la latence, appelée «périphérie du réseau». Les CDN essaient d’optimiser le temps que les utilisateurs passent à la périphérie du réseau sans avoir à faire une demande plus loin dans le réseau (et boguez votre serveur Web).
Ce type de CDN est appelé CDN «origine pull» ou «miroir». Un CDN pull reflète le contenu de votre site Web et le fournit avec une latence plus faible et une mise en cache améliorée. L’autre variante est appelée CDN «origin push», qui peut remplacer certaines parties de votre serveur Web. Les CDN Push sont principalement utilisés pour héberger du contenu qu’il serait impossible d’héberger sur des serveurs Web traditionnels tels que des services de streaming vidéo ou d’autres grands médias. Par exemple, les images et les vidéos stockées dans Amazon S3 peuvent être diffusées via leur CDN CloudFront dans une configuration push, éliminant ainsi le besoin d’héberger complètement ce contenu.
Mise en cache du site complet
De nombreux CDN sont principalement utilisés pour mettre en cache des images, des fichiers et d’autres contenus statiques. Mais certains CDN, en particulier Cloudflare, Fastly et Amazon CloudFront, peuvent mettre en cache l’intégralité de votre site. La mise en cache du site complet peut être configurée pour expirer en quelques secondes seulement, ce qui permet à votre site de rester réactif tout en allégeant une charge importante sur vos serveurs Web.
Vous pouvez définir des règles pour chaque type de page dont vous disposez et choisir la durée pendant laquelle vous souhaitez que le contenu soit mis en cache. Cela peut être fait via le panneau d’administration avec votre fournisseur CDN, ou en ajoutant Cache-Control
en-têtes de vos réponses HTTP, avec lesquels vous pouvez définir max-age
à une heure précise en secondes.
Cependant, vous ne devez pas appliquer ces paramètres à l’ensemble de votre site. Certaines choses doivent être dynamiques. Par exemple, la page de profil d’un utilisateur, ou toute page nécessitant une authentification, doit jamais être mis en cache, sinon tout le monde visitant sa propre page de profil verrait les informations d’un autre compte. C’est exactement ce qui est arrivé à Steam lors de leur vente de Noël 2015, lorsque Valve a mis à jour sa configuration de mise en cache pour tenter d’atténuer un pic de trafic et a mis en cache par inadvertance les données utilisateur. Cela n’a permis à personne de se connecter en tant qu’autre utilisateur, mais cela leur a permis d’afficher une copie de leurs données privées, ce qui constitue toujours une énorme faille de sécurité.
Dans certains cas, les API peuvent être mises en cache. Un site comme Reddit, par exemple, n’a pas besoin de faire une demande de base de données chaque fois que quelqu’un demande les meilleurs articles sur la page d’accueil. Vous pouvez à la place les mettre en cache toutes les minutes environ, et ne faire des demandes que lorsque cela est nécessaire, comme quelqu’un qui demande de nouveaux messages. Cependant, certaines API peuvent rompre avec la mise en cache, vous devrez donc faire des tests de votre côté pour voir si cela fonctionnera pour le vôtre.
Devriez-vous utiliser un CDN?
Si votre site Web reçoit un trafic quelconque, vous devez absolument mettre en cache vos actifs statiques, tels que les images, les feuilles de style CSS et les fichiers JavaScript, même si vous n’avez pas de problèmes de trafic. Les CDN peuvent accélérer votre site malgré tout, simplement parce qu’ils sont situés beaucoup plus près des utilisateurs. Chaque fois que votre site doit faire une poignée de main, il y a beaucoup moins de distance aller-retour.
Si votre site rencontre beaucoup de trafic, la mise en cache de l’intégralité du site (ou du moins sur les pages principales de votre site) peut réduire considérablement la charge de vos serveurs Web.
Si vous utilisez un fournisseur d’hébergement spécialisé, tel que SquareSpace, Shopify ou WordPress, ce fournisseur a probablement déjà son propre CDN intégré et gérera généralement les détails de l’hébergement de votre site Web pour vous.
Vous devez également utiliser le cache du navigateur, que vous pouvez utiliser avec un CDN. Essentiellement, vos actifs seront stockés dans le navigateur de l’utilisateur pendant une courte période (5 à 10 minutes), de sorte que s’ils cliquent sur une autre page de votre site, leur navigateur n’aura même pas à faire une demande pour le contenu déjà. a. Mais si vous apportez des modifications au site et qu’ils reviennent le jour suivant, ils recevront une page mise à jour à partir du CDN car le cache du navigateur a expiré.
Même si vous n’utilisez pas de CDN pour votre site Web, vous devez vous procurer des bibliothèques JavaScript populaires telles que jQuery à partir d’un CDN largement utilisé. Cela signifie que votre serveur Web n’a pas à servir ce fichier lui-même si l’utilisateur a récemment visité un site en utilisant le même CDN et la même bibliothèque.