Échec du cache et succès du cache : quand ils se produisent (et comment augmenter le taux de succès du cache)
Publié: 2022-05-04Optimiser les performances de votre site Web sans mettre en place une politique de mise en cache solide revient à essayer de construire une maison sur des sables mouvants.
Vous pouvez utiliser les meilleurs matériaux et outils, mais lorsque votre fondation n'est pas solide comme le roc, vous aurez toujours l'impression que quelque chose entrave votre progression.
Votre politique de mise en cache est l'épine dorsale des performances Web exceptionnelles de votre site Web. Si vous disposez d'un système de mise en cache approprié, vous pouvez considérablement améliorer la vitesse de votre site.
À l'inverse, sans une bonne configuration de mise en cache, les demandes de vos visiteurs entraîneront des échecs de cache, ce qui ralentira le temps de chargement de votre page.
Et le manque de cache n'est qu'un des sujets qui seront abordés dans les lignes suivantes avec :
- Une brève introduction à la mise en cache ;
- Qu'est-ce qu'une Cache Mlle ?;
- Qu'est-ce qu'un accès au cache ? ;
- Qu'est-ce que le taux d'accès au cache et comment le calculer ? ;
- Qu'est-ce qu'un bon taux d'accès au cache ? ;
- Comment augmenter le taux d'accès au cache ? ;
- NitroPack - le moyen le plus simple d'obtenir un excellent taux d'accès au cache.
Commençons!
Une brève introduction à la mise en cache
Avant de plonger dans le monde des succès et des échecs de cache, il est essentiel de comprendre comment fonctionne la mise en cache, à quoi elle sert et pourquoi elle est considérée comme la meilleure stratégie d'optimisation de la vitesse.
Pour comprendre la mise en cache, nous devons prendre du recul et suivre l'ensemble du processus qui se déroule dans les coulisses lorsqu'un visiteur demande votre site.
Votre site Web est composé de documents HTML, de fichiers JavaScript et CSS, d'images, etc. Ils sont tous stockés sur votre serveur d'origine. Lorsqu'une personne souhaite visiter votre site Web, son navigateur envoie une requête à votre serveur d'origine, qui à son tour renvoie une réponse avec tous les fichiers nécessaires.

Lorsque vous avez 10 visiteurs qui demandent simultanément les fichiers de votre site, il ne devrait pas y avoir de problème et votre serveur peut les gérer assez facilement.
Cependant, ce modèle ne fonctionne pas lorsque 100 000 visiteurs veulent visiter votre site Web.
Les serveurs ont une limite sur le nombre de demandes qu'ils peuvent traiter simultanément, et chaque demande après cette limite est mise en file d'attente, ce qui entraîne des temps de chargement plus longs pour vos visiteurs.

C'est là que la mise en cache entre en jeu.
En un mot, la mise en cache est le processus d'enregistrement d'une copie des données de votre site (HTML, CSS, JS, images, etc.) dans un emplacement différent appelé cache Web.
Le cache web joue le rôle d'intermédiaire entre les utilisateurs et votre origine. De cette façon, leurs demandes sont servies à partir du cache et non récupérées à partir de votre serveur.

En conséquence, vos pages se chargent beaucoup plus rapidement.
Vous pouvez trouver de nombreux types de classifications de mise en cache. Mais pour les besoins de cet article, et pour comprendre quand les succès et les échecs du cache se produisent, nous allons jeter un coup d'œil aux deux types les plus populaires - la mise en cache du navigateur et du proxy.
Mise en cache du navigateur
Chaque navigateur a sa propre politique de mise en cache et peut stocker des données localement sur l'ordinateur d'un utilisateur.
C'est utile car cela accélère le chargement d'une page précédemment visitée. En fait, la mise en cache du navigateur est la principale raison pour laquelle les boutons Précédent et Suivant peuvent opérer leur magie.

Malheureusement, la mise en cache du navigateur est limitée au fonctionnement par appareil. Mais son plus grand avantage est qu'il peut enregistrer des requêtes réseau entières, ce qui en fait un incontournable.
Mise en cache du serveur proxy
La mise en cache proxy permet d'alléger la charge sur le serveur et de fournir un contenu relativement plus rapide aux utilisateurs finaux. Le meilleur scénario est lorsque la mise en cache du proxy fonctionne de pair avec la mise en cache du navigateur.
Les serveurs proxy sont distribués partout dans le monde. Ils sont généralement gérés par des fournisseurs CDN (Content Delivery Network).
Les proxys sont des intermédiaires entre l'utilisateur et votre serveur d'origine. Vous pouvez les utiliser pour mettre en cache du contenu à différents endroits, et ainsi, votre contenu sera plus proche des utilisateurs, réduisant la latence et le trafic réseau :

Contrairement à la mise en cache du navigateur, la mise en cache du serveur proxy n'est pas limitée par appareil et peut servir simultanément du contenu à plusieurs utilisateurs.
C'est l'essentiel de la mise en cache. C'est un sujet nuancé, et il y a beaucoup plus à dévoiler - avantages et inconvénients des différents types de mise en cache, comment configurer des règles de mise en cache, et plus encore.
Mais ce n'est pas l'objet de cet article.
Si vous souhaitez approfondir le sujet, vous pouvez consulter notre article - Web Caching 101 : Beginner's Guide To HTTP Caching (Examples, Tips and Strategies)
Ou regardez notre vidéo YouTube :
Pour l'instant, il est important de se rappeler que si les données demandées ne sont pas trouvées dans votre cache Web, c'est à ce moment-là que des retards et des problèmes commencent à se produire. Cela nous amène à un manque de cache.
Qu'est-ce qu'une Cache Miss ?
Un échec du cache se produit lorsqu'un système, une application ou un navigateur demande à récupérer des données du cache, mais que ces données spécifiques sont actuellement introuvables dans la mémoire cache.
Lorsqu'un défaut de cache se produit, la demande est transmise au serveur d'origine.
Une fois que les données sont extraites de l'origine, elles sont ensuite copiées et stockées dans la mémoire cache en prévision de demandes futures similaires pour ces mêmes données.
Il y a plusieurs raisons pour qu'un échec de cache se produise.
Par exemple, les données spécifiques n'ont jamais été mises en cache en premier lieu.
Disons que vous avez un site de commerce électronique et que vous venez d'ajouter une nouvelle page de produit. Toutes les images, les fichiers HTML, CSS et JavaScript n'ont jamais été ajoutés à la mémoire cache car personne ne les a jamais demandés. Cela signifie que votre premier visiteur devra envoyer une requête à votre origine afin de charger la page. Après la première requête, les données seront transférées vers le cache et servies à partir de celui-ci.
Une autre possibilité d'échec du cache est que les données mises en cache ont été supprimées à un moment donné.
Encore une fois, il y a plusieurs choses qui auraient pu conduire à ce scénario - plus d'espace était nécessaire, une application a demandé la suppression ou la politique Time to Live sur les données a expiré.
Nous aborderons plus en détail Time to Live plus loin dans l'article.
Quelle que soit la raison, la vérité est que chaque manque de cache entraîne une latence plus longue, des temps de chargement lents, une mauvaise expérience utilisateur et des visiteurs insatisfaits.
Cependant, je ne veux pas vous donner l'impression que vous devez obtenir des accès au cache 100 % du temps. Ce n'est pas réaliste.

De plus, dans certains cas, des échecs de cache sont nécessaires, car vous devrez peut-être vous assurer que le contenu que vous diffusez est toujours à jour.
Par exemple, un site Web d'actualités comme bbc.com peut modifier le contenu de sa page d'accueil plusieurs fois au cours de la journée, car les dernières nouvelles doivent être signalées. Dans ce cas, un accès au cache signifie que leurs lecteurs n'ont pas vu la dernière version de leur site Web, et respectivement - ils ont raté les dernières nouvelles.
Il y a donc un avantage à l'occurrence d'un échec de cache.
Cependant, si vous n'avez pas de site Web d'actualités et que vous ne modifiez pas votre contenu régulièrement, vous devez vous efforcer de limiter autant que possible les échecs de cache et le nombre d'accès au cache aussi élevé que possible.
Qu'est-ce qu'un accès au cache ?
Un accès au cache se produit lorsque les données demandées sont servies avec succès à partir du cache.
Par exemple, si un utilisateur visite l'une de vos pages produits qui est censée afficher une image du produit que vous vendez, son navigateur enverra une demande pour cette image au cache (navigateur ou CDN). Si le CDN a une copie de l'image dans son stockage, la demande aboutit à un accès au cache et l'image est renvoyée au navigateur.
Qu'est-ce qu'un taux d'accès au cache et comment le calculer ?
Le taux d'accès au cache mesure le nombre de requêtes qu'un cache a livrées avec succès à partir de son stockage, par rapport au nombre de requêtes qu'il a reçues au total.
Un taux d'accès au cache élevé signifie que la plupart des demandes de vos utilisateurs ont été satisfaites par le cache, ce qui signifie qu'ils ont connu des temps de chargement plus rapides.
Vous pouvez calculer votre taux d'accès au cache à l'aide de cette formule :

Cependant, cela pourrait ne pas être nécessaire car la plupart des fournisseurs CDN le calculent pour vous.
Le tableau de bord de NitroPack affiche également ces informations :

Qu'est-ce qu'un bon taux d'accès au cache ?
En règle générale, un taux d'accès au cache de 80 % et plus est un bon résultat car cela signifie que la plupart des requêtes sont servies à partir du cache.
Tout ce qui est inférieur à 80 % sur les sites Web statiques indique une politique de mise en cache inefficace.
Selon Cloudflare, l'un des plus grands fournisseurs de CDN au monde :
Le taux d'accès au cache global pour NitroPack est de 90 %. Et environ 70 % de tous les utilisateurs de NitroPack connaissent un taux d'accès au cache de 80 % ou plus.
Comment augmenter le taux d'accès au cache ?
Vous pouvez prendre des mesures spécifiques pour réduire le nombre d'échecs de cache et donc augmenter votre taux d'accès au cache.
1. Configurez des règles de mise en cache en fonction des besoins de votre site Web
L'en-tête cache-control vous permet de définir une myriade de règles de mise en cache différentes afin d'optimiser la diffusion de votre contenu.
Certaines des règles incluent:
- no-store indique aux caches Web de ne stocker aucune version de la ressource en aucune circonstance ;
- no-cache indique au cache Web qu'il doit valider le contenu mis en cache avec le serveur d'origine avant de le servir aux utilisateurs ;
- max-age définit la durée maximale (en secondes) pendant laquelle le cache peut conserver la ressource enregistrée avant de la télécharger à nouveau ou de la revalider avec le serveur d'origine. Après cela, le contenu est marqué comme obsolète ;
- s-maxage fait exactement la même chose que max-age mais uniquement pour les caches proxy ;
- private indique aux caches Web que seuls les caches privés peuvent stocker la réponse ;
- public marque la réponse comme publique. Tous les caches intermédiaires peuvent stocker des réponses marquées avec cette instruction ;

Vous devez définir une durée de vie (la durée pendant laquelle le cache conservera vos données avant de récupérer les informations mises à jour à partir de l'origine) qui correspond le mieux à votre contenu.
Par exemple, si un actif change environ tous les deux mois, un en -tête d'âge maximum de 50 jours peut être approprié. Toutefois, si l'actif est modifié quotidiennement, vous pouvez utiliser un en -tête sans cache .
Vous pouvez trouver plus d'informations sur les en-têtes de contrôle du cache, la fraîcheur du cache et la validation dans notre vidéo YouTube :
2. Ignorer les paramètres UTM
L'exécution de plusieurs campagnes publicitaires (par exemple, des publicités Facebook, des publicités Google, etc.) génère différentes URL avec des paramètres UTM spécifiques.
En conséquence, vous avez une seule page avec plusieurs variantes (différents paramètres UTM) qui doivent être optimisées.

C'est un problème car chaque variation d'URL est considérée comme un objet unique et chaque demande sera dirigée vers le serveur d'origine.
En conséquence, chaque demande sera classée comme un manque de cache, même si le contenu demandé était disponible dans le cache Web.
Cela conduit à un taux d'accès au cache inutilement inférieur.
NitroPack - Le moyen le plus simple d'obtenir un excellent taux d'accès au cache
Après tout ce que nous avons couvert, l'ensemble du processus d'obtention d'un taux d'accès au cache élevé peut sembler un peu écrasant.
La bonne nouvelle est que si vous travaillez avec un fournisseur de CDN, la plupart des éléments que j'ai mentionnés, comme les en-têtes de contrôle du cache, sont peut-être déjà pris en charge pour vous.
Pour tout le reste, vous pouvez utiliser un plugin de mise en cache.
Par exemple, NitroPack est livré avec des fonctionnalités prêtes à l'emploi qui garantissent un taux d'accès au cache élevé à nos utilisateurs. Ceci comprend:
- Cache Warmup simulera des visites organiques sur votre site Web, ce qui conduit automatiquement NitroPack à préparer des versions optimisées (en cache) de votre site Web pour les ordinateurs de bureau et les appareils mobiles.
- L'invalidation du cache marque le contenu mis en cache comme "obsolète" mais continue de le servir jusqu'à ce qu'un nouveau contenu optimisé soit disponible. En conséquence, vos visiteurs voient toujours un contenu optimisé, même s'il peut être obsolète pendant un court moment.
- CDN intégré, qui vous évite d'avoir à synchroniser votre CDN avec le plugin de mise en cache de votre choix. Cela prend souvent du temps, est peu pratique et peut entraîner des problèmes inattendus.
- Une option Paramètre ignoré qui permet à NitroPack d'ignorer par défaut certains paramètres UTM (et autres) couramment utilisés afin que vous n'ayez pas à vous inquiéter lors de l'exécution de vos campagnes marketing.

Mais vous n'avez pas à me croire sur parole. Testez NitroPack gratuitement et constatez par vous-même son impact.
