Qu’est-ce que le cache ? Et pourquoi est-il important pour la vitesse d’un site internet ?
En informatique, la mise en cache fait référence à une procédure de stockage des données dans une ressource hautement disponible et facilement accessible afin de réduire le temps de récupération de ces données. L’importance de la mise en cache remonte au milieu des années 1960, lorsque les processeurs informatiques pouvaient traiter une densité d’instructions plus élevée en un temps plus court par rapport à la récupération de ces instructions à partir de la mémoire, ce qui impliquait également que le processeur serait inactif pendant un temps spécifique.
Bien qu’à l’origine, cette solution ait été conçue pour les systèmes de bas niveau (matériel), des principes similaires plus tard ont été proposés pour augmenter les performances des applications sur Internet telles que les sites Web. C’est aujourd’hui un paramètre important lors de la réalisation de site internet . C’est un critère à prendre en compte lors du choix de l’agence web qui réalisera conception de votre site web.
Avant de nous plonger dans la façon dont les mécanismes de mise en cache nous permettent d’obtenir de meilleures performances sur les sites Web, discutons brièvement de la façon dont un site Web est servi à un utilisateur.
Comment fonctionne un site internet ?
Lorsqu’un utilisateur saisit une URL ou une adresse de site Web dans le navigateur, vous trouverez ci-dessous l’ensemble des actions (au minimum) prises par un navigateur.
- Recherche l’adresse IP (Internet Protocol) de destination à l’aide d’un serveur de noms de domaine (DNS). Un DNS entre essentiellement une adresse de site Web et génère l’adresse IP du serveur sur lequel réside le site Web.
- Le navigateur envoie ensuite une requête HTTP ou HTTP 2.0 au serveur web. Cette demande est envoyée en utilisant la couche réseau, mais résumons simplement les détails de cette partie.
- Le serveur renvoie une réponse HTTP ou HTTP 2.0.
- Le navigateur commence à rendre la réponse de haut en bas, de gauche à droite et déclenche d’autres requêtes HTTP / HTTP 2 selon les besoins, c’est-à-dire les actifs de la page Web.
Si on y réfléchit, chacune de ces étapes essaie de récupérer une sorte de données à partir d’une ressource ou d’une autre. La ressource responsable de la livraison des données, par exemple un serveur DNS, aura besoin d’un certain temps pour trouver la réponse à la requête correspondante. Suite à cela, il y a toujours le temps supplémentaire pour la livraison de cette réponse.
Par conséquent, le problème que ces étapes mettent en évidence en ce qui concerne l’efficacité ne rappelle pas seulement celui du processeur essayant de récupérer des instructions à partir de la mémoire secondaire, il est également analogue. C’est la raison sous-jacente pour laquelle le même mécanisme de mise en cache fonctionne bien pour augmenter les performances des applications Web.
Différents types de cache
Mise en cache DNS
Ceci est utilisé lors de la recherche DNS.
Ie navigateur (ou système d’exploitation) met en cache l’adresse IP du site de destination, il n’a donc pas à demander à un serveur DNS.
Mise en cache côté serveur
Chaque fois qu’un serveur est demandé pour une page Web, il doit effectuer une sorte de calcul. Ce calcul peut extraire certaines données de la base de données, c’est-à-dire le produit commandé par quelqu’un, ou ce calcul peut interpréter le code de haut niveau (c’est-à-dire PHP) en quelque chose appelé code machine (bas niveau).
Pour réduire la complexité temporelle de ces tâches, les programmeurs utilisent souvent le cache pour éviter de refaire le calcul fréquent. Par exemple, si un morceau de code (par exemple un script PHP) est écrit pour calculer la somme de deux entiers, il est inutile de le traduire dans le code machine à plusieurs reprises pour chaque requête, donc les programmeurs convertissent le code une fois interprété dans un cache (appelé OPcache dans le cas de PHP) afin qu’ils n’aient pas besoin de l’interpréter à nouveau.
De même, les moteurs de base de données essaient de mettre en cache les index du contenu fréquemment récupéré afin de pouvoir répondre instantanément.
Mise en cache basée sur le navigateur
Un développeur vous a-t-il déjà demandé de «vider le cache pour voir les dernières modifications» ? Si oui, il est probable que le développeur vous demande de vider le cache de votre navigateur afin que vous puissiez voir le code mis à jour. Étant donné que les navigateurs doivent faire tout le gros du travail de rendu du temps et de calculer des ressources complexes, ils ont tendance à mettre ces ressources en cache, de sorte que le temps de réponse est plus rapide. Ces ressources peuvent inclure, mais sans s’y limiter, des feuilles de style, des polices, des images ou des bibliothèques JavaScript.
Alors, qu’est ce que c’est le cache ?
Bien que la mise en cache soit excellente, nous ne pouvons malheureusement pas tout mettre en cache pour les raisons suivantes:
- Parfois, l’exigence d’une application Web est de voir les données dynamiques, c’est-à-dire un rapport météorologique ou la valeur d’un stock.
- Bibliothèques tierces, par exemple si une application utilise le code de quelqu’un d’autre dans le cadre de l’application et disons qu’il y a une mise à jour de sécurité de ce code si ce code est mis en cache, il ne serait pas mis à jour, ce qui entraînerait des problèmes catastrophiques .
Cependant, ne pas tout mettre en cache ajoute d’autres problèmes au mélange.
Cache les réussite et les ratés !
Taux de réussite et d’échec du cache
L’accès au cache signifie qu’un utilisateur ou un système a tenté d’accéder à un contenu / une ressource, ce contenu était disponible dans le cache et il a été immédiatement donné à l’utilisateur concerné ou au système. En revanche, le «cache manquant» se produit lorsque du contenu est demandé et que le cache ne contient pas les données pertinentes et que la demande doit être adressée
Le taux de réussite du cache est simplement le nombre de fois où le contenu a été trouvé dans un cache divisé par le nombre total de fois où les données ont été rappelées.
Un système efficace tente d’augmenter le taux d’accès au cache et de réduire le taux d’échec du cache.
Politiques de contrôle du cache et optimisation des moteurs de recherche (SEO)
Étant donné que des systèmes tels que HTTP ou des réseaux de diffusion de contenu tels que Cloudflare mettent les ressources en cache de manière arbitraire, il est nécessaire d’informer ces systèmes de ce qui doit être mis en cache et pendant combien de temps. Bien que différents frameworks traitent différemment l’idée des politiques de cache, c’est-à-dire que .NET a son propre ensemble de programmes pour y faire face, le dénominateur commun entre tous ces frameworks est HTTP. HTTP utilise quelque chose appelé « demandes de cache et directives de réponse » pour contrôler les politiques de cache.
Par exemple, s’il y a un composant sur un site Web qui doit être mis à jour chaque fois que quelqu’un ajoute une publication, une directive «Cache-Control: must-revalidate» doit être utilisée chaque fois que quelqu’un met à jour cette publication.
Étant donné que les moteurs de recherche explorent et récupèrent constamment des informations, l’une des choses qu’ils recommandent est d’utiliser de meilleures politiques de cache HTTP pour le contenu statique. L’utilisation de bonnes politiques de cache offre non seulement une meilleure expérience utilisateur, mais cela peut être un élément clé pour aider le référencement de votre site Web.
Quelles actions dois-je entreprendre si je possède un site Web ?
Si vous utilisez un site WordPress avec un service d’hébergement géré tel que WP Engine, il est probable que vous utilisiez déjà une sorte de politique de mise en cache. Par exemple, WP Engine utilise plusieurs cache et utilise une politique qui interdit la mise en cache des fonctionnalités de base. Si vous n’utilisez pas de service d’hébergement maintenu mais que vous utilisez WordPress comme plate-forme, il existe des tonnes de plugins qui peuvent aider à élever la barre dans une certaine mesure, à savoir WP Super Cache .
Comme nous l’avons vu précédemment, la plupart des frameworks sont livrés avec des mécanismes de mise en cache natifs. Il est préférable d’utiliser ces mécanismes pour optimiser les performances de votre site Web et pour optimiser le site Web pour les moteurs de recherche.
En conclusion, la mise en cache peut introduire des situations paradoxales, mais elle présente également de nombreuses opportunités en matière d’expérience utilisateur et de référencement.