30 minutes pour suivre l’odyssée d’une requête web, du navigateur de l’utilisateur jusqu’au cœur de PHP, et découvrir tous les types de caches qui jalonnent son périple.
À quoi ces caches peuvent vous servir ? Comment trouver ceux dont vous avez réellement besoin ? Comment les utiliser ou les activer ? Comment savoir s’ils fonctionnent correctement ?
Si vous pensez que le cache WordPress s’arrête à WP Rocket ou Varnish, cette conférence est pour vous !
Conférence donnée lors du WordCamp Biarritz 2023
5. 1
Performance
Utiliser la copie d’un résultat d’une
opération longue est plus rapide que
d’effectuer une nouvelle fois cette
opération.
2
Résilience
Positionner la copie d’une donnée au
plus près du lieu de consommation
rend possible l’indisponibilité de la
source de données.
3
Efficience
Utiliser une copie d’une donnée permet
d’économiser les ressources
nécessaires à la génération de cette
donnée.
CACHE : COMPOSANT SERVANT À
STOCKER TEMPORAIREMENT UNE
COPIE DE DONNÉES
6. NAVIGATEUR
À utiliser systématiquement en production, jamais en
développement.
Extensions WordPress spécifiques ou généralistes. Peut être
activé manuellement depuis le fichier .htaccess.
Via l’inspecteur du navigateur, dans l’onglet « réseau ».
Cache local, situé sur le poste client (intégré au navigateur) pour des ressources statiques
uniquement. N’est pas activé par défaut : nécessite des réglages côté serveur.
7. DNS
TTL au maximum en production, au minimum avant
déploiement ou migration.
Choix d’un fournisseur de DNS « anycast »
Outils de vérification de propagation DNS ou ligne de
commande.
Cache local, situé sur le poste client (intégré au système d’exploitation) et géographique
distant. Ne concerne que les enregistrements DNS. Toujours activé côté client.
8. CDN
Utilisable en production et pré-production. Produit des effets
de bords en développement.
Achat de service la plupart du temps. Fournisseurs gratuits
pour certaines ressources statiques open source.
Via l’inspecteur du navigateur, dans l’onglet « sources ».
Cache géographique distant pour des ressources statiques ou semi-dynamiques. Permet de
soulager le serveur web. Indispensable pour les sites utilisés depuis plusieurs pays ou
continents. Indépendant du client.
9. PROXY
Utilisable en production. Ne doit jamais être utilisé en
développement.
Très souvent intégré à l’hébergement web mais peut-être
acheté sous forme de service externe. Nécessite parfois une
extension WordPress.
Via l’inspecteur du navigateur, par vérification des en-têtes de
réponse.
Cache local, situé sur le serveur ou service externe. Pour des ressources statiques, fragments ou
pages. Indépendant du client.
10.
11. CACHE WORDPRESS
Utilisable en production et pré-production. Produit des effets
de bords en développement.
Nécessite une extension WordPress.
Via l’inspecteur du navigateur, par vérification des en-têtes de
réponse.
Cache local, toujours situé sur le serveur. Pour des ressources statiques, fragments ou pages.
Dépendant du client.
12. CACHE OBJET
Cache indispensable dans tous les cas d’usage. Utilisable en
production et en développement.
Dépendant de l’hébergeur : APCu, Redis, Memcached.
Nécessite toujours une extension WordPress.
Certaines extensions proposent des outils de surveillance.
Cache local, situé sur le serveur ou serveur externe. Permet à WordPress, ses thèmes et
extensions, de mettre en cache les objets manipulés et les requêtes SQL effectuées.
Indépendant du client.
13. CACHE CODE
Cache indispensable dans tous les cas d’usage. Utilisable en
production et en développement.
Dépendant de l’hébergeur : OPcache. Ne nécessite pas
d’extension WordPress.
Certaines extensions proposent des outils de surveillance.
Cache local, toujours situé sur le serveur. Permet à PHP de cacher les sources précompilées.
Indépendant du client.
14. 7 types de caches : locaux ou géographiques
Objectifs : performance / résilience / efficience
Le cache n’est pas facultatif !
15. MERCI !
P I E R R E L A N N O Y
W O R D P R E S S L O V E R
H O S T E R R A F O U N D E R & C E O
P I E R R E @ H O S T E R R A . E U