Comment désactiver la mise en cache du navigateur en PHP : vous pouvez désactiver la mise en cache des pages statiques via des balises méta, telles que [], expires Used pour définir le délai d'expiration des pages Web.
La méthode est la suivante :
(Tutoriel vidéo recommandé : Tutoriel vidéo php)
1. Pour les pages statiques (définies via des balises méta)
<!--expires用于设定网页的过期时间,一旦过期就必须从服务器上重新加载.时间必须使用GMT格式--> <meta http-equiv="expires" content="0" />
ou définies via pragma no-cache, pragma apparaît dans l'attribut http-equiv et la valeur no-cache de l'attribut content est utilisée pour indiquer s'il faut mettre en cache la page Web (pour améliorer la vitesse. Certains navigateurs mettront en cache les pages que les téléspectateurs ont parcourues. Selon la définition suivante, les navigateurs ne mettent généralement pas les pages en cache et les navigateurs ne peuvent pas être parcourus hors ligne).
<meta http-equiv="pragma" content="no-cache" />
Cache-Control : Contrôle du cache, spécifiant le mécanisme de mise en cache suivi des requêtes et des réponses. La définition de Cache-Control dans un message de demande ou un message de réponse ne modifie pas le processus de mise en cache pendant le traitement d'un autre message.
Les instructions de mise en cache dans la requête incluent no-cache, no-store, max-age, max-stale, min-fresh, only-if-cached, etc. Les instructions contenues dans le message de réponse incluent public, privé, sans cache, sans magasin, sans transformation, revalidation obligatoire, revalidation proxy, âge maximum.
Certaines instructions contenues dans chaque message ont les significations suivantes :
Public : indique que la réponse peut être mise en cache par n'importe quel cache.
Privé : Indique que tout ou partie du message de réponse d'un seul utilisateur ne peut pas être traité par le cache partagé. Cela permet au serveur de décrire uniquement une réponse partielle d'un utilisateur qui n'est pas valide pour les demandes des autres utilisateurs.
no-cache : indique que les messages de demande ou de réponse ne peuvent pas être mis en cache.
no-store : utilisé pour empêcher la divulgation involontaire d'informations importantes. L'envoyer dans le message de demande entraînera l'utilisation de la mise en cache par les messages de demande et de réponse.
max-age : Indique que le client peut recevoir des réponses avec une durée de vie ne dépassant pas le temps spécifié (en secondes).
min-fresh : Indique que le client peut recevoir des réponses avec un temps de réponse inférieur à l'heure actuelle plus l'heure spécifiée.
max-stale : indique que le client peut recevoir des messages de réponse au-delà du délai d'attente. Si vous spécifiez une valeur pour les messages périmés au maximum, le client peut recevoir des messages de réponse qui dépassent la valeur spécifiée du délai d'expiration.
Remarque : l'en-tête Cache-Control a été ajouté dans HTTP1.1, ce qui permet un contrôle du cache plus détaillé par rapport à d'autres méthodes.
<meta http-equiv="Cache-Control" content="no-cache,no-store, must-revalidate"> header('Cache-Control: max-age=3600*24');//缓存1天,表示最大生存期是1天,超过1天浏览器必须去服务器重新读取,这个时间是从用户第一次读取页面时开始计时的
2. Pour les pages PHP :
Pour les pages dynamiques, le code mis en cache doit être placé avant toute sortie de balise HTML, sinon une erreur se produira.
<?php header('Cache-Control:no-cache,must-revalidate'); header('Pragma:no-cache'); header("Expires:0"); ?>
Last-Modified : L'heure de la dernière modification du document. Son utilisation est la suivante :
1 : S'il s'agit d'un fichier statique, le client enverra l'heure dans son cache, et Apache la comparera. S'il constate qu'il n'y a aucune modification, il renverra directement un en-tête. avec un code d'état de 304. Le nombre d'octets est très petit.
2 : S'il s'agit d'un fichier dynamique PHP, le client envoie l'heure de comparaison, et PHP déterminera s'il doit le modifier. Si l'heure de modification est la même, seuls 1024 octets seront renvoyés. 1024 est renvoyé, il est inconnu. Si le fichier généré par votre PHP est très volumineux et qu'il ne renvoie que 1024, il économise donc de la bande passante. Le client affichera automatiquement le fichier du cache en fonction de l'heure de modification envoyée par le serveur.
Remarque : si l'en-tête Last-Modified n'est pas défini, le simple réglage de Cache-Control et Expires fonctionnera également, mais chaque requête doit renvoyer le nombre réel d'octets du fichier, et non 1024
php définit l'exemple de code d'en-tête Last-Modified comme suit :
header('Last-Modified: '.gmdate('D, d M Y 01:01:01',$time).' GMT');//使用的是格林尼治时间,$time是指文件添加时候的时间戳
Recommandations associées : formation 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!