Mise en cache du contenu statique et dynamique : fonctionnement

Contrairement au contenu statique, le contenu dynamique est différent pour chaque utilisateur, ce qui signifie qu'il ne peut pas être diffusé à plusieurs utilisateurs et qu'il est difficile à mettre en cache. Cependant, la mise en cache de contenu dynamique est possible avec la bonne technologie.

Objectifs d’apprentissage

Cet article s'articule autour des points suivants :

  • Différencier le contenu statique et le contenu dynamique
  • Découvrir pourquoi le contenu dynamique est difficile à mettre en cache et comment les nouvelles technologies rendent cela facile
  • Comprendre la différence entre la mise en cache et la compression de contenu dynamique
  • Découvrir comment les balises Edge Side Include permettent de mettre en cache des parties statiques d'une page web dynamique

Contenu associé


Vous souhaitez continuer à enrichir vos connaissances ?

Abonnez-vous à theNET, le récapitulatif mensuel de Cloudflare des idées les plus populaires concernant Internet !

Consultez la politique de confidentialité de Cloudflare pour en savoir plus sur la manière dont nous collectons et traitons vos données personnelles.

Copier le lien de l'article

Quelle est la différence entre le contenu statique et le contenu dynamique ?

Le contenu statique désigne tout fichier stocké sur un serveur et demeurant identique lors de chaque transmission à un utilisateur. Les fichiers HTML et les images en sont un bon exemple. Le contenu statique s'apparente à un journal : une fois imprimé, le journal présente les mêmes articles et les mêmes photos toute la journée à tous ceux qui en achètent un exemplaire, quels que soient les nouveaux événements qui se produisent entretemps.

Le contenu dynamique change en fonction de facteurs propres à l'utilisateur, comme l'heure de la visite, la position géographique et l'appareil. Une page web dynamique n'aura pas la même apparence pour tout le monde et peut évoluer pendant l'interaction avec l'utilisateur. Pour reprendre l'analogie du journal, ce serait un peu comme si ce dernier pouvait être réécrit au cours de la lecture. Cette approche permet de personnaliser les pages web et de les rendre plus interactives.

Page web statique Page web dynamique

Les sites web d'actualités modernes représentent de bons exemples de contenu dynamique : contrairement à un journal papier, les articles sont mis à jour tout au long de la journée et la page d'accueil peut présenter différents titres en fonction de l'emplacement du visiteur du site ou de son statut de connexion. Les pages de réseaux sociaux constituent un autre exemple : le fil d'actualités Facebook est totalement différent pour chaque utilisateur et les utilisateurs peuvent interagir avec le contenu afin de le modifier (en ajoutant un « J'aime », en partageant ou en commentant les publications).

Les pages web dynamiques ne sont pas stockées sous forme de fichiers HTML statiques. Au contraire, les scripts côté serveur génèrent un fichier HTML en réponse à des événements (les interactions ou les connexions utilisateur, par exemple) et envoient le fichier HTML au navigateur web. Comme le contenu dynamique est généré côté serveur, il est généralement diffusé à partir des serveurs d'origine et non d'un cache.

Pendant longtemps, le contenu dynamique a été considéré comme impossible à mettre en cache. Toutefois, les nouvelles technologies permettent aux sites web de diffuser du contenu dynamique à partir d'un cache, une fonctionnalité entraînant ainsi une réduction considérable de la latence, tout en préservant le caractère interactif de l'expérience utilisateur.

Comment le contenu statique est-il mis en cache ?

Le processus de mise en cache web habituel consiste, du point de vue du cache, à enregistrer une copie du fichier statique (par exemple, une image) lors de la diffusion du contenu, afin de rapprocher ce dernier de l'utilisateur et d'accélérer sa diffusion la fois suivante. Les navigateurs et les réseaux de diffusion du contenu (CDN) peuvent mettre du contenu statique en cache pendant une période définie et le diffuser aux utilisateurs, tant que ce contenu continue de faire l'objet d'une demande. Cette possibilité découle du fait que le contenu statique ne change pas avec le temps : le même fichier peut être diffusé à plusieurs reprises aux utilisateurs, encore et encore.

Comment fonctionne la mise en cache du contenu dynamique ?

Le contenu dynamique est généré par des scripts qui modifient le contenu d'une page. En exécutant des scripts au sein d'un cache CDN plutôt que dans un serveur d'origine distant, le contenu dynamique peut être généré et distribué à partir d'un cache. Une fois « mis en cache », le contenu dynamique n'a donc pas besoin d'être diffusé depuis le serveur origine, avec pour résultat une réduction du temps de réponse aux requêtes des clients et une accélération des pages web dynamiques.

Cloudflare Workers, par exemple, constitue un ensemble de fonctions JavaScript serverless qui s'exécutent sur le réseau CDN de Cloudflare. Ces fonctions peuvent répondre à une variété d'événements et d'entrées, notamment le type d'appareil, l'heure de la journée, l'emplacement de l'utilisateur ou les données issues d'API tierces. En fonction de ces paramètres, le contenu dynamique peut être généré et diffusé aux appareils clients. De même, le contenu statique peut être modifié, mis en cache ou supprimé du cache.

Comme Cloudflare Workers constitue un environnement d'exécution JavaScript, les développeurs peuvent s'appuyer sur lui pour créer un large éventail de fonctionnalités ou une application entière, en plus des possibilités de mise en cache du contenu dynamique. La solution Cloudflare Workers peut en outre être déployée et propagée aux emplacements CDN du monde entier en quelques secondes.

La solution Cloudflare Workers fonctionne dans un environnement d'exécution léger afin que le code puisse tourner et être exécuté en quelques millisecondes. Elle permet aux développeurs d'exécuter du code sans se soucier de la configuration d'une infrastructure. En savoir plus sur l'informatique sans serveur.

Quelle est la différence entre la mise en cache et la compression du contenu dynamique ?

Une autre approche de l'accélération des pages web dynamiques consiste à compresser le contenu dynamique généré par le serveur d'origine, avant de le diffuser aussi rapidement et efficacement que possible. Avec la compression dynamique, le contenu provient toujours du serveur d'origine plutôt que d'un cache. Toutefois, les fichiers HTML restent générés avec une taille considérablement réduite afin d'atteindre l'appareil client plus rapidement.

En quoi l'utilisation d'Edge Side Include (ESI) permet-elle d'accélérer les pages web dynamiques ?

Il arrive souvent qu'une grande quantité de contenu sur une page web dynamique demeure uniforme pour l'ensemble des utilisateurs et que seuls certains éléments de la page se révèlent dynamiques, car une grande partie du code HTML est reproduite dans chaque copie dynamique de la page. Afin de résoudre ce problème, un certain nombre d'entreprises ont travaillé de manière conjointe au développement d'Edge Side Include (ESI), un langage de balisage permettant d'indiquer à quel endroit le contenu dynamique doit apparaître sur une page web. (Le langage ESI est utilisé sur certains réseaux CDN, mais n'est pas encore accepté par le W3C, l'organisation qui régit les normes web.)

Le contenu identifié par une balise ESI est récupéré ailleurs, tandis que le reste du contenu de la page web peut être mis en cache. Si seule une partie de la page web est générée dynamiquement et que le reste est mis en cache, la page se charge beaucoup plus rapidement que si l'intégralité de cette dernière devait être générée pour chaque utilisateur. La solution ESI peut être associée à Cloudflare Workers afin de rendre le processus encore plus efficace.