Dans le développement Web, la mise en cache est un concept extrêmement important. Il fournit un moyen de résoudre les problèmes de performances et de réduire la demande en ressources du serveur. PHP est un langage Web populaire et, bien sûr, il peut également configurer la mise en cache. Cet article explique comment configurer la mise en cache dans les pages PHP.
1. Qu'est-ce que le cache ?
Le cache est un terme très courant dans le domaine informatique. Son essence est de stocker les données ou programmes fréquemment utilisés à proximité des utilisateurs pour améliorer la vitesse d'accès.
Dans le développement Web, la mise en cache fait généralement référence au stockage d'une page ou d'un fichier traité dans la mémoire du serveur Web afin de réduire le temps de traitement lors des accès ultérieurs.
2. Pourquoi utiliser la mise en cache
Dans le développement Web, la génération de pages prend généralement beaucoup de temps. Lorsque le nombre de visites augmente, la charge sur le serveur Web augmente également. Si chaque requête de page nécessite un traitement complet, le temps de réponse du serveur risque de devenir très lent. Par conséquent, pour les pages fréquemment demandées, nous pouvons choisir de mettre ces pages en cache en mémoire, ce qui peut réduire la charge sur le serveur Web et améliorer la vitesse de réponse des pages.
3. Comment configurer le cache
En PHP, nous pouvons contrôler le cache du navigateur et la durée du cache en définissant les en-têtes HTTP. L'implémentation spécifique est la suivante :
Si nous savons que le contenu d'une page ne changera pas de sitôt, nous pouvons définir son délai d'expiration sur un délai long pour réduire le temps de réponse du serveur.
// 设置缓存时间为1小时 $expires = 3600; header("Pragma: public"); header("Cache-Control: max-age=".$expires); header('Expires: ' . gmdate('D, d M Y H:i:s', time() + $expires) . ' GMT');
Dans l'exemple ci-dessus, nous définissons la durée du cache via Cache-Control
. Ici, nous définissons la durée du cache sur 1 heure. Cache-Control
来设定缓存时间,这里我们将缓存时间设置为1小时。
如果我们知道一个页面可能在某个时间被修改,那么我们可以设置一个 Last-Modified
的标记来帮助浏览器判断该页面是否需要重新获取。如果今后访问时,服务器对页面进行了修改,那么该标记将同时计算。
// 读取文件修改时间并设置 Last-Modified 标记 $lastModifiedTime = filemtime($filePath); $etag = md5_file($filePath); header("Last-Modified: " . gmdate("D, d M Y H:i:s", $lastModifiedTime) . " GMT"); header("Etag: $etag");
在上述示例中,我们使用了 filemtime()
函数来获取文件的最后一次修改时间,并使用 md5_file()
Dernière modification
balise pour aider Le navigateur détermine si la page doit être réacquise. Si le serveur modifie la page lors de visites ultérieures, le tag sera calculé en même temps. // 增加版本号 $version = 1; $url = "http://www.example.com/index.php?v=".$version; header("Location: ".$url);
Dans l'exemple ci-dessus, nous avons utilisé la fonction filemtime()
pour obtenir l'heure de dernière modification du fichier, et la fonction md5_file()
pour obtenir la valeur Etag du dossier.
Afin d'atténuer les problèmes de cache du navigateur, nous pouvons mettre à jour un numéro de version ou d'autres balises similaires lorsque le contenu de la page change et laisser le navigateur relire la page. De cette façon, même si le contenu de la page n'a pas changé, le navigateur peut toujours obtenir la nouvelle page, évitant ainsi le problème des pages expirées.
rrreee🎜Dans l'exemple ci-dessus, nous ajoutons un numéro de version à l'URL consultée et redirigeons le navigateur vers l'URL, indiquant ainsi au navigateur de récupérer la page lorsque la page est mise à jour. 🎜🎜4. Résumé🎜🎜Dans le développement Web, la mise en cache est une méthode courante pour améliorer la vitesse de réponse des pages. En PHP, nous pouvons contrôler le cache et la durée du cache de la page en définissant des en-têtes HTTP. Cependant, la mise en cache peut également causer des problèmes si elle n'est pas configurée correctement, par exemple en empêchant certaines pages de ne jamais être mises à jour. Par conséquent, lors de l’utilisation du cache, nous devons accorder une attention particulière aux paramètres de durée du cache et mettre régulièrement à jour la marque de modification du contenu de la page. 🎜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!