+ Menu
Vous êtes ici : Marcandev.com > Blog > Utilisation du cache par les sites Internet

Utilisation du cache par les sites Internet

Présentation des méthodes de caches

Publié le 17/11/2013 :



Avec le développement des sites Internet dynamiques et la complexité des affichages des informations changeant en temps réel, est apparu les problèmes de performances des serveurs web (Temps de réponse long, blocages ...), notamment en cas de fort trafic ou de montées en charge. L'une des solutions pour garder les performances optimales du serveur, même s’il est sollicité par de nombreux internautes, c'est d'utiliser le cache.

 

 

Définition du cache :

 

 

Technique permettant de stocker la "photographie" d'une page en mémoire affichée sur le navigateur de l'internaute. La "photographie" de cette page (autrement dit, la disposition des élément que compose cette page) est mise en mémoire soit sur le navigateur de l'internaute, soit sur le serveur. Dans le cas où un internaute viendrait à une même adresse Internet, le serveur utilisera la "photographie" de la page pour l'afficher sur le navigateur, au lieu de générer une autre page à partir de différents calculs qui solliciteront les processeurs du serveur et sa base de données . Le cache a pour but d’économiser des ressources du côté serveur, de le rendre plus performant en affichant les pages plus rapidement sur le navigateur du client .

 

Comment le cache est utilisé ?

 

Tout d'abord, le cache est utilisé à deux endroits différents soit du côté client (Dans ce cas le navigateur garde en mémoire les pages visitées), soit du côté serveur .

 

Le cache du navigateur

Concrêtement, lorsqu'un internaute compose une adresse Internet, son navigateur va télécharger des fichiers (images, javascript, feuilles de style, ...) nécessaire à la constitution et à l'affichage de la page web sur le corps du navigateur. Ces fichiers, une fois téléchargés, vont être stockés dans un espace sur le disque du PC de l’internaute, qui est le cache du navigateur. Ces fichiers sont appelés les fichiers temporaires. En cas de reconnexion à cette même adresse par l'internaute, son navigateur utilisera le fichiers de son cache pour ré-afficher la page qu'il a visité avant. Ce qui évite d’effectuer de nouveaux téléchargements de fichiers, économise la bande passante du serveur et permet d'afficher la page web plus rapidement.

Cependant, les fichiers stockés dans le cache du navigateur ont une durée de vie limitée déterminée par les paramètres du navigateur (durée de l’historique, suppression du cache ...). Mais aussi, il est possible que le webmaster puisse déterminer la durée de vie des fichiers du cache en leurs attribuant des dates d'expiration (suivant si ce sont des fichier image.jpg, image.png, .css, .js ...) à partir de la configuration du serveur web (Apache, Nginx, IIS ...) . Ainsi, si des fichiers du cache ont été supprimés ou ont dépassé leur date d’expiration, les fichiers concernés sont téléchargés de nouveau en cas de nouvelle visite à la même adresse Internet pour ré-afficher la page web et être stockés dans le cache du navigateur. Pour ce type de cache, c'est seul et seulement le visiteur qui profite des performances du site à condition qu’il visite les mêmes adresses Internet, contrairement au cache du côté serveur .

 

Le cache côté serveur

A la différence du cache du côté navigateur, le cache du côté serveur présente les pages mis dans le cache pour tous les visiteurs.
Si la configuration du serveur prévoie d’activer la gestion du cache, en cas de visite d'une adresse Internet, l'internaute effectue une requête au serveur pour que son navigateur puisse télécharger les fichiers et afficher la page web sur son ordinateur. A la réception de la requête par l'utilisateur, le serveur génère une page web avant de le renvoyer au navigateur sous la forme d'une réponses . Entre temps la "photographie" exacte de la page web générée est conservée dans un gestionnaire de caches sur le serveur. A la génération de cette page, le serveur aura sollicité ses processeurs et sa base de données ce qui représente une consommation de ressources importantes pour le serveur. Concernant la durée de la page conservée dans le cache elle est programmée au niveau du serveur de tel façon que si les information de la page web génére arrive à expiration, elles sont remplacées à la prochaine génération de la page web déclenchée par un autre visiteur via une nouvelle requête . Si un nouvel internaute visite l’adresse Internet, qui a été visitée par un autre Internaute précédemment, si le cache n'a pas atteint sa date d'expiration, alors le serveur utiliser la page web du cache pour l'afficher sur le navigateur de l'internaute. Ce qui permet au serveur d’économiser la consommation des ressources pour la génération d'une nouvelle page. Ainsi, non seulement le serveur limite l'utilisation de ses processeurs et de sa base de données pour faire afficher une page web, mais aussi, la page web s'affichera plus rapidement sur le navigateur .
Du côté serveur, j’ai repéré deux manières de gérer le cache un sous la forme de fichier et l'autre en utilisant la méémoire vive du serveur .

 

 

 

1 - Le cache sous la forme d'un fichier

 

 

Le gestionnaire de cache fonctionne avec du code php ou un autre langage serveur (perl, python, ruby ...). Dans ce cas, le cache généré par le programme sera un fichier contenant du code html, dans un dossier sur le disque dur. A chaque consultation de l'adresse faite par l’internaute, le serveur fera appel au fichier associé à l’adresse en question si sa date d'expiration n'est pas dépassée, il génèrera un autre fichier pour remplacer le fichier existant dans le cache avant de l'utiliser pour l'afficher sur le navigateur client . Le programme gérant le fichier fixe la date d'expiration de fichier en effectuant une comparaison entre la durée de vie du fichier limite et la durée de vie calculée du fichier du cache concernée à afficher . La durée de vie du fichier du cache est calculée à partir de sa date de modification et de la date du système .

 

2 - Utilisation du cache à partir de memcached

 

Memcached est un programme open source permettant de d'allouer un espace de stockage des données dans la mémoire vive de l'ordinateur. Memcached est géré par un des plugins de php s'appelant memcache. Cette fois un programme permettra de gérer les données dans la mémoire vive du serveur mais non sur le disque dur. De plus l’écriture et la lecture des données sur la mémoire vive est beaucoup plus rapide que sur le disque dur . Dans le cas de la gestion du cache via Memcached (Mémoire vive), les différentes données nécessaires à la construction de la page web sont associés à l'adresse Internet de la page à afficher . Ainsi memcache fonctionne avec un système d'associations clés - valeurs . La clé est une chaine de caractères permettant de chercher la valeur associée . Cette chaîne de caractères est faite à partir de l'adresse Internet de la page à afficher . La valeur associée dans memcache contient les données pour la construction de la page web . Pour ce système de gestion de caches on aura fixé au préalable la durée de vie des cache afin de renouveler les données et de mettre à jour les pages web .

 

Pourquoi avons-nous intérêt à utiliser le cache ?

 

Comme nous l'avons vu, la gestion et l'utilisation du cache du côté serveur permet d’économiser les calculs nécessaires et de se passer de la connexion à la base de données lors de la génération d’une page web. Tandis que l’utilisation du cache du côté navigateur permet d’économiser les téléchargements des fichiers (Donc de la bande passante) lors du ré-affichage de la page web sur le navigateur dans le cas où le visiteur reviendrais consulter la même adresse internet. Ainsi le cache permet d'afficher les pages web plus rapidement .

Cette technique est intéressante de l’appliquer dans la mesure où les internautes vont quasiment visiter les mêmes adresses Internet d'un site web, surtout si les pages web changent peu souvent . Dans le cas où si le site est du type e-commerce nous avons intérêt à utiliser cette technique avec précaution, surtout si le catalogue du site contient des centaines voir des milliers de références et exige des mises à jours fréquents. On aura intérêt à connaître combien de fois dans la journée les références sont elles mis à jour au niveau de leurs disponibilité et du de leur prix . Dans ces cas mieux vaut limiter la durée de vie du cache voir ne pas utiliser le cache à certains endroits du site. L'utilisation du cache dépend aussi de la durée de la promotion de différents produit mis en avant sur le site .


Modifié le 08/06/2014