Maison  >  Article  >  développement back-end  >  Comment les en-têtes de cache HTTP peuvent-ils optimiser les performances du site Web PHP ?

Comment les en-têtes de cache HTTP peuvent-ils optimiser les performances du site Web PHP ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-04 05:37:29566parcourir

How can HTTP Cache Headers Optimize PHP Website Performance?

Utilisation des en-têtes de cache HTTP pour optimiser les performances des sites Web PHP

Malgré la disponibilité de systèmes et de frameworks de cache avancés, il est parfois nécessaire d'implémenter un HTTP de base cachez les en-têtes pour améliorer les performances du site Web. En particulier pour les sites Web PHP 5.1.0, qui ne disposent pas de certaines capacités de cache, les en-têtes jouent un rôle essentiel.

En-têtes de cache efficaces pour les sites Web PHP

Pour activer une mise en cache efficace, envisagez les en-têtes suivants :

  • Last-Modified : Définit la dernière modification date du document, que les navigateurs utilisent pour déterminer si le contenu a changé depuis leur dernière visite.
  • ETag : Spécifie un identifiant unique pour le document, permettant aux navigateurs de vérifier s'ils ont déjà la dernière version.
  • Expire : Définit un délai d'expiration absolu pour le document, indiquant aux navigateurs de ne pas le mettre en cache au-delà de ce délai. time.
  • Cache-Control : Contrôle comment et pendant combien de temps les navigateurs doivent mettre en cache le document. Il peut être défini sur « public », permettant à quiconque de mettre le document en cache, ou sur « privé », limitant la mise en cache à des utilisateurs individuels. Vous pouvez envisager d'utiliser "private_no_expire" si vous avez besoin de longueurs de mise en cache plus longues sans autoriser la mise en cache publique.

Mise en œuvre des requêtes conditionnelles

En plus de définir les en-têtes de cache , il est essentiel de gérer les requêtes conditionnelles, telles que « If-Modified-Since » et « If-None-Match ». Ces requêtes permettent aux navigateurs de vérifier si le document a changé depuis une date précise ou si l'ETag a changé depuis leur dernière visite.

Si le contenu n'a pas changé, vous pouvez renvoyer un statut "304 Non Modifié". code, indiquant que le navigateur peut continuer à utiliser la version mise en cache. Cette approche efficace minimise les téléchargements inutiles et accélère le chargement du site Web.

L'exemple de code PHP suivant montre comment gérer les requêtes conditionnelles :

<code class="php">$timestamp = /* PHP script to generate a unique timestamp */;
$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 &amp;&amp; $if_none_match == $etag) || (!$if_none_match)) &amp;&amp;
    ($if_modified_since &amp;&amp; $if_modified_since == $tsstring))
{
    header('HTTP/1.1 304 Not Modified');
    exit();
}
else
{
    header("Last-Modified: $tsstring");
    header("ETag: \"{$etag}\"");
}</code>

En implémentant les en-têtes de cache et en traitant efficacement les requêtes conditionnelles, vous peut améliorer considérablement les performances et l'expérience utilisateur de votre site Web PHP.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn