Maison >développement back-end >tutoriel php >Comment puis-je implémenter efficacement la mise en cache HTTP avec PHP pour les sites Web dynamiques au contenu statique ?
Intégration de la mise en cache HTTP avec PHP
Dans les situations où le contenu de la page reste principalement statique mais entouré d'un modèle dynamique, l'exploitation des en-têtes de cache HTTP peut optimiser livraison des pages. Voici un guide simplifié pour mettre en œuvre une mise en cache efficace à l'aide de PHP :
En-têtes essentiels pour la mise en cache
Pour activer la mise en cache, pensez à envoyer les en-têtes suivants :
Demandes et traitement conditionnels
Traiter les demandes conditionnelles entrantes en utilisant if-modified-since et if-none-match:
Détermination de la validité du cache
Lors de la génération de l'ETag, envisagez d'utiliser une somme de contrôle ou une combinaison de facteurs tels que l'utilisateur ID, langue et horodatage. Pour un contenu statique plus durable, définissez une expiration plus longue.
Exemple de mise en œuvre
<code class="php">$tsstring = gmdate('D, d M Y H:i:s ', $timestamp) . 'GMT'; $etag = $language . $timestamp; $if_modified_since = isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) ? $_SERVER['HTTP_IF_MODIFIED_SINCE'] : false; $if_none_match = isset($_SERVER['HTTP_IF_NONE_MATCH']) ? $_SERVER['HTTP_IF_NONE_MATCH'] : false; if ((($if_none_match && $if_none_match == $etag) || (!$if_none_match)) && ($if_modified_since && $if_modified_since == $tsstring)) { header('HTTP/1.1 304 Not Modified'); exit(); } else { header("Last-Modified: $tsstring"); header("ETag: \"{$etag}\""); }</code>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!