"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > 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 ?

Publié le 2024-11-10
Parcourir:274

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 le 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 date de dernière modification 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 disposent déjà de 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.

Implémentation 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 :

$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 && $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}\"");
}

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

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3