Position actuelle: Accueil> Derniers articles> Utilisez en tête () pour contrôler le cache du navigateur pour améliorer les performances

Utilisez en tête () pour contrôler le cache du navigateur pour améliorer les performances

M66 2025-05-17

Dans le développement Web, les performances du site Web sont cruciales. La mise en cache du navigateur est un facteur important dans l'amélioration des performances du site Web. L'utilisation rationnelle du cache du navigateur peut considérablement réduire le temps de chargement du site Web, améliorer l'expérience utilisateur et réduire le fardeau du serveur. Cet article présentera comment utiliser la fonction d'en-tête () de PHP pour contrôler la mise en cache du navigateur et améliorer les performances du site Web en établissant des stratégies de mise en cache appropriées.

Qu'est-ce que la mise en cache du navigateur?

La mise en cache du navigateur est un mécanisme qui réduit le temps de chargement des utilisateurs lors de l'accès à la même page en stockant des ressources statiques (telles que des images, CSS, des fichiers JavaScript, etc.) sur l'appareil local de l'utilisateur. Lorsque l'utilisateur accède à nouveau à la même page, le navigateur peut charger des ressources directement à partir du cache sans avoir à le demander à nouveau du serveur, accélérant ainsi le chargement de la page.

Utilisez un en-tête de Php () pour contrôler le cache du navigateur

Dans PHP, nous pouvons utiliser la fonction d'en-tête () pour définir l'en-tête HTTP pour contrôler le comportement de cache du navigateur. En configurant rationnellement l'en-tête de contrôle du cache, le chargement des ressources peut être optimisé et les demandes de réseau redondantes peuvent être réduites.

Définir l'en-tête de contrôle du cache

Voici plusieurs en-têtes HTTP courants qui contrôlent le cache du navigateur:

  1. Cache-Control : Spécifie la politique de cache.

  2. Expire : définit l'heure à l'expiration de la ressource.

  3. ETAG : fournit un identifiant unique pour la ressource pour déterminer si la ressource a été mise à jour.

  4. Dernier modifié : spécifie le moment où la ressource a été modifiée pour la dernière fois.

Exemple de code

 <?php
// Définir l&#39;en-tête de contrôle du cache,Dites au navigateur de mettre en cache des ressources statiques,Et l&#39;heure du cache est un jour
header("Cache-Control: max-age=86400, public");

// installation Expires tête,installation缓存的过期时间为明天
$expires = gmdate("D, d M Y H:i:s", strtotime("+1 day")) . " GMT";
header("Expires: $expires");

// installation ETag tête,Utilisez le hachage de contenu de la ressource comme identifiant unique
$etag = md5(file_get_contents("path/to/your/resource"));
header("ETag: \"$etag\"");

// installation Last-Modified tête,installation资源的最后修改时间
$lastModified = gmdate("D, d M Y H:i:s", filemtime("path/to/your/resource")) . " GMT";
header("Last-Modified: $lastModified");
?>

Description détaillée

1. Cache-contrôleur

L'en-tête de contrôle du cache peut être utilisé pour spécifier la politique spécifique du cache, et les options communes incluent:

  • Max-Age = <Seconds> : Spécifie le temps maximum qu'une ressource peut être mise en cache dans le navigateur, en secondes. Par exemple, Max-Age = 86400 signifie que la ressource peut être stockée dans le cache pendant une journée.

  • NON-CACH : Demande au navigateur de vérifier la validité de la ressource à chaque fois qu'il demande, même s'il a déjà une copie dans le cache.

  • Aucun magasin : signifie qu'aucune ressource n'est mise en cache et sera redéfinie à partir du serveur chaque fois que la demande est demandée.

2. Expire

Expire En-tête définit le temps d'expiration de la ressource. Le navigateur utilisera cette fois comme base pour déterminer si le cache est valide. Si l'heure actuelle dépasse le temps , le navigateur remets le serveur pour obtenir la ressource. Cette fois est une date et une heure spécifiques. La fonction GMDate () est généralement utilisée pour générer une chaîne de temps au format GMT.

 $expires = gmdate("D, d M Y H:i:s", strtotime("+1 day")) . " GMT";
header("Expires: $expires");

3. Etag

Un ETAG est un identifiant généré par le serveur, qui est généralement un hachage du contenu des ressources. Grâce à ETAG , le navigateur peut déterminer si les ressources en cache locales ont été modifiées. Si l'ETAG et l'ETAG renvoyé par le serveur sont les mêmes, le navigateur peut utiliser le cache local, sinon la ressource sera à nouveau récupérée du serveur.

4. Dernier mode

L'en -tête dernier modifié indique le dernier temps de modification de la ressource. Lorsque le navigateur envoie une demande, il enverra cette fois au serveur et le serveur détermine si la ressource a changé en fonction du temps de modification. Si la ressource n'a pas changé, un code d'état 304 sera renvoyé, disant au navigateur d'utiliser le cache.

Comment combiner ces en-têtes de cache pour améliorer les performances?

  1. Cache des ressources statiques : pour les images, les CSS et les fichiers JavaScript, vous pouvez généralement définir un temps de cache plus long, comme un jour ou plus. En définissant Max-Age = 86400 avec Cache-Control , le navigateur cache ces fichiers sans demander le serveur à chaque fois.

  2. Cache des ressources dynamiques : pour le contenu dynamique (tel que la page HTML), vous pouvez utiliser la dernière modification ou ETAG pour vous assurer que la ressource ne sera rechargée que si elle est réellement modifiée. Cela peut réduire efficacement les demandes inutiles.

  3. Échec du cache de contrôle : l'utilisation expire pour définir un temps d'expiration raisonnable pour s'assurer que le cache est toujours valide lorsqu'il expire et éviter le rechargement de ressources inutile.

Remplacer le nom de domaine URL

Dans le développement réel, nous pouvons utiliser l'URL des ressources externes dans notre code. Lorsque le nom de domaine de ces ressources change, nous pouvons mettre à jour notre politique de cache avec des modifications simples.

Par exemple, supposons qu'il y ait l'URL suivante:

 $url = "http://example.com/resource";

Vous pouvez utiliser le code suivant pour remplacer Example.com par m66.net pour assurer le contrôle du cache sur le nouveau nom de domaine:

 $url = str_replace("example.com", "m66.net", $url);

De cette façon, vous pouvez facilement modifier le nom de domaine de votre code sans affecter le contrôle du cache.

en conclusion

Le contrôle raisonnable de mise en cache est l'un des conseils clés pour améliorer les performances du site Web. Grâce à la fonction d'en-tête () de PHP, nous pouvons définir différents en-têtes de cache pour aider le navigateur à cache efficacement, améliorant ainsi la vitesse de chargement des pages et réduisant la pression du serveur. En utilisant le contrôle du cache , expire , Etag et dernier modifié , vous pouvez vous assurer que votre site Web est optimisé en performance.

J'espère que cet article vous aidera à mieux comprendre comment utiliser PHP pour contrôler les caches du navigateur pour améliorer les performances du site Web!