Mise en cache pleine page - Le besoin de vitesse

Publié: 2020-10-02
speed - Full-Page Caching - The Need For Speed -

La mise en cache de sites Web et la mise en cache de pages complètes sont des techniques permettant d'accélérer le temps de chargement des sites Web. C'est une pratique très courante qui est utilisée presque partout en raison des gains massifs qu'elle apporte aux performances du site Web. La mise en cache fonctionne en rendant le serveur Web beaucoup plus efficace dans son travail. La mise en cache pleine page est une forme de mise en cache plus avancée. Pour comprendre la mise en cache pleine page, commençons par la mise en cache normale et construisons à partir de là.

Joe's Auto-Parts Shop - Un site Web statique

1 - Full-Page Caching - The Need For Speed -

Imaginez Jo. C'est un gars qui possède et gère un grand entrepôt rempli de pièces automobiles. A l'avant de l'entrepôt se trouve un comptoir où les clients arrivent pour acheter ses pièces. Lorsqu'un client arrive pour acheter des pièces, la transaction suit cette procédure :

  1. Le client remet à Joe une liste de pièces automobiles.
  2. Joe va chercher la 1ère partie et la pose sur le comptoir.
  3. Joe va chercher la 2e partie et la pose sur le comptoir.
  4. Et ainsi de suite jusqu'à la fin de la liste.
  5. Le client paie et part.

Alors, comment cela s'applique-t-il à un site Web statique ?

Un site Web statique est un site Web qui n'utilise aucune base de données, aucun script PHP ou aucun autre programme. Pensez à un site Web simple qui ne contient que des pages HTML et des images. Joe et son entrepôt représentent les parties de ce site Web simple comme ceci :

  • L'entrepôt est le serveur physique.
  • Joe est le logiciel du serveur Web, par exemple Apache
  • Les pièces automobiles sont les fichiers qui composent un site Web, par exemple des images et des fichiers HTML.

La procédure pour servir ce site simple est la suivante :

  1. Un navigateur demande une page Web à Apache s'exécutant sur le serveur.
  2. Apache lit le 1er fichier du disque et l'envoie au navigateur.
  3. Apache lit le 2ème fichier du disque et l'envoie au navigateur.
  4. Et ainsi de suite jusqu'à ce qu'il ait tout récupéré.
  5. Le navigateur affiche la page Web terminée.

Cette configuration fonctionne bien pour les petits sites Web mais échoue rapidement sous la pression.

Joe devient occupé - La mise en cache sauve la journée

2 - Full-Page Caching - The Need For Speed -

Le système de Joe fonctionne bien jusqu'à ce qu'il commence à être occupé. Tellement occupé en fait qu'il passe la plupart de son temps à marcher du comptoir à l'entrepôt et qu'il ne peut pas suivre tous les nouveaux clients.

Joe pourrait acheter un entrepôt supplémentaire et employer quelqu'un d'autre pour y travailler afin de répondre à la demande supplémentaire. Mais cela coûte cher et ne maximise pas les ressources dont il dispose déjà. Au lieu de cela, Joe réfléchit à la manière dont il pourrait rendre son processus plus efficace dans l'entrepôt dont il dispose.

Joe se rend compte que 90 % des pièces qu'il va chercher pour les clients ne sont que 10. Il décide donc de garder ces 10 pièces sous le comptoir où il peut les saisir immédiatement lorsque quelqu'un les demande. Il peut désormais répondre à la majorité des demandes des clients directement depuis le comptoir sans se déplacer dans l'entrepôt. C'est beaucoup plus rapide.

La mise en cache fait quelque chose de très similaire sur un serveur Web. Tout comme Joe revient dans l'entrepôt, l'action la plus lente lors de la diffusion de fichiers statiques est le chargement du fichier à partir du périphérique de stockage. Ce que fait la mise en cache, c'est de conserver les fichiers les plus fréquemment demandés dans la RAM où ils peuvent être consultés des milliers de fois plus rapidement que de les lire à partir du stockage.

Ce type de mise en cache fonctionne très bien pour les images et autres fichiers statiques, mais WordPress est un site Web dynamique avec des scripts PHP et une base de données.

Entrez la mise en cache pleine page.

La vie de Joe se complique - PHP, bases de données et mise en cache

joe - Full-Page Caching - The Need For Speed -

Un nouvel atelier Toyota ouvre dans la même ville que Joe et ils utilisent Joe pour fournir les pièces de rechange. C'est très bien pour Joe, sauf pour un problème, Toyota ne commande que des pièces par leur numéro de pièce Toyota. Ils donnent à Joe un énorme catalogue afin qu'il puisse rechercher les numéros de pièces Toyota et les faire correspondre aux pièces de son entrepôt chaque fois qu'il reçoit une commande de leur part.

Mais cela ralentit à nouveau Joe.

Chaque fois qu'il doit rechercher la pièce Toyota dans le catalogue, cela lui prend beaucoup de temps. Même s'il s'agit d'une des pièces sous le comptoir, il ne peut pas simplement l'atteindre car il doit d'abord rechercher le numéro de pièce Toyota dans le catalogue. Son ancien système consistant à conserver les 10 pièces les plus demandées sous le comptoir est toujours utile, mais les nouvelles recherches dans le catalogue constituent désormais le gros goulot d'étranglement.

Joe réfléchit à nouveau et trouve une solution. Il remarque que la plupart des commandes de Toyota ne font partie que d'un petit groupe. Il rédige donc une feuille de triche des numéros de pièces Toyota les plus courants et de leurs pièces correspondantes et il la colle sur le comptoir.

Maintenant, il n'a plus besoin d'utiliser le catalogue pour la plupart des commandes Toyota, il peut jeter un coup d'œil à la feuille de triche et convertir le numéro de pièce Toyota presque instantanément en une pièce qu'il peut récupérer.

Les sites WordPress ont un problème similaire à Joe. WordPress construit chaque page Web à la demande du navigateur. Les pages HTML que votre navigateur charge n'existent pas tant que vous ne les demandez pas à WordPress.

Voici comment WordPress crée une page de votre site :

  1. Un navigateur demande une page Web à WordPress.
  2. Un script PHP accepte la requête et demande à la base de données ce dont elle a besoin pour créer la page.
  3. La base de données recherche et renvoie toutes les informations au processus PHP.
  4. Le script PHP construit la page avec ces informations et l'envoie au navigateur.

C'est beaucoup de travail et c'est la raison pour laquelle les sites Web WordPress non mis en cache nécessitent beaucoup plus de ressources informatiques que les sites Web statiques.

Tout comme Joe, votre site WordPress reçoit très souvent des demandes pour les mêmes pages, comme la page de destination de votre site, car cette page est servie à chaque fois qu'un nouveau visiteur arrive. Dans une configuration sans cache, WordPress doit traiter cette demande avec des scripts PHP et effectuer des requêtes de base de données pour chaque visiteur, même s'il crée exactement la même page à chaque fois.

Cela crée beaucoup de travail en double.

La mise en cache pleine page résout ce problème. Il remarque qu'une certaine requête et la page générée sont toujours les mêmes, il met donc en cache une copie de la page dans la RAM. Il conserve également une feuille de triche des demandes qui ont créé ces pages, donc lorsqu'un visiteur demande une page qu'il a générée avant de la servir directement à partir de la RAM plutôt que de la recréer.

Cela réduit considérablement la charge de travail du serveur Web en contournant de nombreux processus PHP et recherches de bases de données et en servant les pages précédemment générées directement à partir de la RAM. Cela peut vous donner un site Web WordPress dynamique qui est presque aussi efficace qu'un site Web statique.

La mise en cache et la mise en cache pleine page sont de superbes technologies qui exploitent les ressources de votre serveur Web pour maximiser l'efficacité de votre serveur Web et vous donner un site WordPress accrocheur.