Plus un site Web est visité,
plus il est important de trouver des techniques pour délivrer
des pages rapidement. Acheter de nouveaux serveurs est
une solution efficace, mais onéreuse. Une solution
alternative consiste dans le caching
des pages.
Cette technique, permettant de conserver sous une forme
statique - en quelque sorte à portée de
main - de l'information potentiellement voulue par l'utilsateur
dans le but de la lui fournir plus rapidement quand il
la demande, à fait ses preuves et ne saurait être
ignorée. Six
questions et réponses pour savoir ce qu'il faut
"cacher"
et comment le faire.
Que
recouvre le caching ?
Il s'agit d'abord
de stocker des données sur un serveur "proche"
d'un visiteur. Lorsqu'un visiteur navigue sur un site,
il envoie des requêtes vers un serveur qui peut
être très loin (géographiquement)
de lui. La requête passe par de nombreux routeurs,
ce qui demande un certain temps.
D'autre part, le caching
sert également à alléger la charge
d'un serveur de pages dynamiques, en répliquant
sur un serveur de cache les données statiques
produites par les scripts, à intervalles réguliers
(tous les quarts d'heure par exemple - en fonction de
la fréquence de mise à jour, plus généralement).
Ceci n'est pertinent que pour des sites de contenus
non actualisés en permanence - mais souvent tout
de même -, et non pas des sites transactionnels,
bien entendu.
Ainsi, le cache doit également
vérifier si la page qu'il va fournir est "fraîche".
C'est la condition indispensable pour délivrer
l'information. Si ce n'est pas le cas, une nouvelle
copie émanant du serveur d'origine doit être
demandée.
Quelle
est la différence entre un caching navigateur
et un caching Web ?
Le caching
navigateur concerne uniquement l'utilisateur. A chaque
clic de souris, le navigateur peut aller vérifier
dans le cache si la page demandée s'y trouve.
Si tel est le cas, elle sera automatiquement délivrée
au visiteur. La plupart des navigateurs (Explorer et
Navigator, par exemple) possèdent cette fonctionnalité.
Il est en outre possible de paramétrer le rafraîchissement
du cache.
Sinon, la requête
sera redirigée vers un serveur local, qui vérifiera
également si la réponse à la requête
se trouve dans son propre cache (on parle alors de caching
proxy), et qui sinon renverra la demande vers
un serveur distant, qui vérifiera dans son cache,
et ainsi de suite...
Que
faut-il mettre en cache ?
Tout information sur le
Web n'est pas forcément bonne à mettre
en cache. L'information dynamique (dépêches,
annonces...) ne gagne pas toujours à figurer
dans le cache puisqu'elle le force à avoir un
temps de rafraichissement très court, mais selon
les besoins, cela ce pratique comme nous l'avons évoqué
plus haut.
D'un autre côté,
les objets lourds et statiques (a priori non
changeants) comme les images gagnent à être
placés dans le cache. Une image répétée
sur toutes les pages d'un même site (un logo,
par exemple) correpond typiquement au genre d'objet
qui gagnent à être mis en cache. Plus globalement,
les pages fréquemment visitées et peu
actualisées ont tout intérêt à
figurer dans le cache.
Certaines informations
ne peuvent être placées dans un cache.
C'est le cas notamment des objets sécurisés
ou nécessitant une authentification. Les données
en sortie d'un script dans un processus transactionnel
(par exemple) ne peuvent pas y figurer non plus, répétons-le.
Quels
sont les avantages du caching ?
Cette technique sert à
la fois l'utilisateur et le fournisseur. L'utilisateur
va accéder à l'information qu'il cherche
plus rapidement, d'une part. D'autre part, la technique
permet de réduire les aller-retours sur Internet
et d'économiser de la bande passante. La
qualité de la transmission est également
meilleure. Le fait de passer par moins de routeurs diminue
le risque de perte de paquets.
Un caching navigateur,
par contre, ne procure des avantages qu'à l'utilisateur.
Les autres visiteurs n'en bénéficient
pas, et le volume du traffic n'est pas affecté.
A quoi
faut-il faire attention lorsque l'on "cache"
du contenu ?
Dans le cas d'un caching
proxy, il se peut que le cache délivre du
contenu qui n'est plus à jour. Il est important
de bien configurer le serveur pour obtenir un temps
de rafraîchissement adéquat à l'information
délivrée sur la page.
Autre
problème, il est impossible de connaître
l'identité d'un navigateur lorsqu'il se connecte
sur un site à l'aide d'un cache, ou d'établir
des statistiques de visites fiables. Pour y remédier,
il est possible de laisser sur la page un élément
invisible minuscule (donc très léger)
non inclus dans le cache. Cet élément
permettra de savoir par exemple combien de personnes
accèdent à cette page.
Pour
quels volumes de contenus le caching est-il pertinent
?
Dans la perspective du désengorgement
de la bande passante, le caching doit s'adresser
à tout le monde. L'impact de cette technologie
est évidemment plus intéressant sur des
gros réseaux utilisés par beaucoup d'utilisateurs.
Mais ses avantages peuvent aussi se révéler
intéressants pour des réseaux s'adressant
à un nombre d'utilisateurs limité (réseaux
locaux par exemple). La règle (de bon sens):
plus ces utilisateurs utilisent les mêmes sources
d'informations, plus le caching sera efficace...
De plus, il est faux de
croire qu'une connexion à haut débit,
du côté du client ou du serveur, règle
les problèmes de bande passante. Si elle permet
de gagner de la rapidité lors d'un aller-retour
requête-résultat, elle ne diminue aucunement
le nombre d'aller-retours. Plus le nombre d'objets et
le nombre d'endroits où ils se trouvent sont
importants, plus le navigateur devra effectuer d'aller-retours.
Plus il y de routeurs sur le chemin, et plus les aller-retours
seront longs. Et plus ces derniers sont nombreux, plus
l'utilisateur attendra pour récupérer
l'information demandée.
Quelles
solutions existent sur le marché?
Il existe un nombre incalculable
de solutions sur le marché, supportant divers
protocoles (HTTP, FTP, GOPHER...). Du côté
de l'open source, il est intéressant de
savoir que le W3C (World Wide Web Consortium)
en propose un, développé par le serveur
HTTP du CERN (Centre Européen pour la Recherche
Nucléaire). Le seveur Apache, le plus utilisé
sur le Web, comprend également un module de caching.
D'une manière générale,
la plupart des acteurs importants sur le marché
des serveurs agrémentent leurs produits d'une fonctionnalité
de caching. Le Cache Engine de Cisco se positionne
à côté de ses routeurs et reçoit
des requêtes HTTP redirigées de manière
transparente. Microsoft propose son serveur ISA (Internet
Security and Acceleration), qui incorpore la fonction
de caching. Le Websphere Edge Server d'IBM supporte
le caching et le filtrage de contenu. Et la liste
n'est pas exhaustive.
|