Autoriser la mise en cache de pages dynamiques avec PHP
Posté le Thursday 10 May 2012 | Catégories : PHP, (x)HTML, Optimisation
Lorsque vous utilisez PHP pour créer du contenu dynamique, que ce soit du code HTML, CSS ou Javascript, ou une image, PHP envoie par défaut au navigateur les headers
- Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
- Pragma: no-cache
- Une date d'expiration (Expires) dans le passé.
Ces headres demandent au navigateur de l'utilisateur, ainsi qu'aux éventuels proxys, de ne pas mettre ce contenu en cache, et de chaque fois le télécharger depuis le serveur. Ceci va naturellement ralentir le site web, et peut également surcharger le serveur.
Pour demander la mise en cache du contenu, il faut utiliser les headers suivants:
$delais = 60 * 60 * 24 * 7; // Une semaine
header("Pragma: public");
header("Cache-Control: maxage=".$delais);
header("Expires: " . gmdate('D, d M Y H:i:s', time() + $delais) . " GMT");