Maison > développement back-end > tutoriel php > Comment améliorer les performances d'un site Web avec les en-têtes de cache HTTP en PHP ?

Comment améliorer les performances d'un site Web avec les en-têtes de cache HTTP en PHP ?

Patricia Arquette
Libérer: 2024-11-04 11:13:02
original
623 Les gens l'ont consulté

How to Improve Website Performance with HTTP Cache Headers in PHP?

Comment implémenter des en-têtes de cache HTTP pour l'optimisation des performances

Dans les scénarios où les pages Web dynamiques sont principalement constituées de contenu statique, l'application d'en-têtes de cache HTTP avec PHP peut améliorer considérablement les performances du site Web. . Ce guide approfondira les en-têtes essentiels pour une mise en cache efficace.

Directives de contrôle du cache

cache-control: private, max-age=180 - Définit un cache privé pour 180 secondes. Les caches privés ne sont accessibles que par des utilisateurs individuels, empêchant le partage entre plusieurs clients.

cache-control: public, max-age=180 - Définit un cache public pendant 180 secondes. Les caches publics sont disponibles pour tous les clients, permettant un accès partagé.

En-têtes de réponse HTTP Date et ETag

Dernière modification : date et heure GMT - Fournit la date et l'heure lorsque le contenu a été modifié pour la dernière fois, permettant aux navigateurs de vérifier les mises à jour.

ETag : (identifiant unique) - Génère un hachage ou une somme de contrôle représentant l'état unique du contenu. Les navigateurs utilisent les en-têtes ETag pour vérifier si le contenu a changé depuis la dernière requête.

En-têtes de vérification du cache

If-Modified-Since : date et heure GMT - Le client envoie la dernière date de modification connue de la ressource. S'il n'y a eu aucun changement depuis cette date, le serveur répond avec un statut 304 Non modifié, évitant ainsi une récupération inutile du contenu.

If-None-Match : (identifiant unique) - Le client envoie la dernière valeur ETag connue pour la ressource. Si l'ETag correspond à la valeur actuelle du serveur, un statut 304 Not Modified est renvoyé.

Implémentation avec PHP

Pour implémenter ces en-têtes en PHP, considérez l'exemple de code suivant :

<code class="php">$tsstring = gmdate('D, d M Y H:i:s ', $timestamp) . 'GMT';
$etag = md5($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>
Copier après la connexion

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 de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal