1min30 > Cache web
2014
09/Juin

Cache web

Avant de définir ce qu’est un cache web

Lorsque vous accédez à une page web, vous provoquez une réaction en chaîne sur le réseau :

  1. Vous effectuez une requête via une url
  2. Si le site auquel vous souhaitez accéder est un site statique, vous téléchargez l’ensemble des ressources statiques (images, code, fichiers…) vers votre ordinateur, tablette ou mobile.
  3. Si le site auquel vous souhaitez accéder est un site dynamique, le serveur va interroger une base de données, compiler le code et le renvoyer à votre navigateur, qui va télécharger les ressources statiques correspondantes (images, code, fichiers…)

Dans le cas n.2, le serveur doit faire transiter l’ensemble des données de la page à chaque requête d’un internaute : c’est consommateur de bande passante, et cela peut être plus long si un grand nombre de requête est effectué au même instant.Dans le cas n.3, le serveur doit non seulement envoyer des données, mais il doit aussi interroger la base de données et compiler le code. Il y a alors consommation de bande passante, de processeur et de RAM.

Définition d’un cache web

Un cache web est une forme de mémoire tampon qui stocke tout ou une partie d’une page web pour une durée déterminée. Lorsque l’internaute souhaite accéder à cette page, en fonction du système de cache mis en place, il ne sollicite directement le serveur que partiellement, ce qui limite la consommation des ressources serveur, et rend globalement la navigation sur le site et son temps de chargement plus rapide.

Cache côté navigateur

Le système de cache web le plus simple est le cache navigateur. Lorsque vous accédez pour la première fois à une page web, le navigateur peut stocker des ressources statiques comme les images ou encore les fichiers CSS. En cas de visite ultérieure de la même page, le navigateur utilisera les images et les CSS préalablement stockés pour afficher la page, et ne demandera pas ces données au serveur. C’est le serveur qui devra indiquer la durée de vie de ces données.L’inconvénient de ce système est qu’il est parfois possible que le site ait changé et que le navigateur ait toujours en cache d’anciennes ressources. Il faut alors vider son cache navigateur pour voir le site tel qu’il est.

Cache au niveau du serveur

Pour les CMS, il existe des systèmes de cache web de différentes natures. La plupart transforme des pages dynamiques en pages statiques : ils stockent le rendu d’une page donnée, et lorsqu’un internaute sollicite cette page, le serveur renvoie la page déjà compilée sous forme de page statique (il n’y a plus d’appel à la base de données). On économise ainsi des ressources serveurs.Cette approche est plutôt rationnelle : la plupart des webmasters qui utilisent des sites dynamiques servent en réalité des pages qui n’évoluent que très peu, et qui peuvent être considérées comme pseudo-statiques.D’autres approches, plus fines, permettent de mettre en cache la base de données. La gestion de ce type de cache nécessite cependant des compétences pointues pour être implémenté de manière optimale, notamment lorsque certains éléments de la pages sont hautement dynamiques, comme par exemple le panier d’un site e-commerce.

Cache avec un proxy

La dernière approche consiste à utiliser une ressource informatique dédiée à la mise en cache des contenus. On utilise alors un proxy, qui va servir d’intermédiaire entre le client et le serveur. Il existe de nombreuses solutions de mise en cache via un proxy. Citons par exemple Squid et Varnish.Pour les lecteurs anglophones, le petit film promotionnel de Varnish résume bien la philosophie de la mise en cache :

 

Gabriel Dabi-Schwebel

Posté par

Ingénieur de formation, j'ai accompagné notamment pour Alcatel, TF1, SFR et Lagardère Active le lanc





Commenter

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée.

Abonnez-vous à notre excellente newsletter

Hey ne partez pas si vite !

Contactez-nous
Do NOT follow this link or you will be banned from the site!