Comment activer la mise en cache du navigateur pour mon site? Dois-je simplement mettre cache-control: public quelque part dans mon en-tête comme ça?
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
Cache-Control:public;
>
J'utilise la dernière version de PHP en développement sur la dernière version de XAMPP.
http
browser-cache
andrew
la source
la source
Réponses:
Pour utiliser le contrôle du cache en HTML, vous utilisez la balise META , par exemple
La valeur dans le champ de contenu est définie comme l'une des quatre valeurs ci-dessous.
Quelques informations sur le
Cache-Control
tête sont les suivantesla source
<meta>
a toujours été un moyen terrible et floconneux de spécifier la mise en cache.no-store
valeur (malgré le document lui-même faisant référence à RFC 2068 ) -no-store
empêche le document d'être stocké / mis en cache du tout, n'importe où. Alors queno-cache
cela permet de le stocker, mais il doit vérifier avec le serveur à chaque fois. Les navigateurs auront tendance à stocker desno-cache
pages pour activer la fonctionnalité du bouton de retour, etc.Vous pouvez définir les en-têtes en PHP en utilisant:
Notez que les en-têtes exacts utilisés dépendront de vos besoins (et si vous devez prendre en charge HTTP 1.0 et / ou HTTP 1.1 )
la source
Pragma
etExpires
sont probablement redondants pour la grande majorité des navigateurs. fastly.com/blog/headers-we-dont-wantComme je l'ai écrit, il est préférable d'utiliser le fichier
.htaccess
. Attention cependant au moment où vous laissez le contenu dans le cache.Utilisation:
Où: 604800 = 7 jours
PS: cela peut être utilisé pour réinitialiser n'importe quel en-tête
la source
La page http://www.askapache.com/htaccess/apache-speed-cache-control.html suggère d'utiliser quelque chose comme ceci:
la source
cache
etno-cache
).max-age
etpublic
ne pas entrer en conflit donc l'ordre n'a pas d'importance.Header
directive, vous devez l'activermod_headers
.a2enmod
ou créer un lien symbolique de/etc/apache2/mods-available/headers.load
à/etc/apache2/mods-enabled/headers.load
.C'est le meilleur que
.htaccess
j'ai utilisé dans mon site Web actuel:la source
<filesMatch "\.(x?html?|php)$">
pour éviter la mise en cache des pages HTML statiques. Le reste des filematches est ok.<filesmatch "\.(eot|woff|otf|ttf|svg)$">
.css
etjs
sur privé si vous disposez de la mise en cache du proxy. Je n'ai trouvé aucune recommandation dans votre lien à ce sujet. La plupart des CDN vous recommandent de mettre ces valeurs en cache.Pour le serveur Apache, vous devez vérifier mod_expires pour définir les en-têtes Expires et Cache-Control.
Alternativement, vous pouvez utiliser la directive Header pour ajouter Cache-Control par vous-même:
la source
La balise de contrôle meta cache permet aux éditeurs Web de définir comment les pages doivent être gérées par les caches. Ils comprennent des directives pour déclarer ce qui doit être mis en cache, ce qui peut être stocké par les caches, les modifications du mécanisme d'expiration et les contrôles de revalidation et de rechargement.
Les valeurs autorisées sont:
Public - peut être mis en cache dans des caches partagées publiques
Privé - ne peut être mis en cache que dans le cache privé
no-Cache - ne peut pas être mis en cache
no-Store - peut être mis en cache mais pas archivé
Veuillez faire attention à la sensibilité à la casse. Ajoutez la balise META suivante dans la source de votre page Web. La différence d'orthographe à la fin de la balise est que vous utilisez "/> = xml ou"> = html.
Source-> MetaTags
la source
OWASP recommande ce qui suit,
Dans la mesure du possible, assurez-vous que l'en-tête HTTP de contrôle du cache est défini avec no-cache, no-store, must-revalidate, private; et que l'en-tête HTTP pragma est défini avec no-cache.
la source