Je me gratte un peu la tête là-dessus. Un site Drupal que j'exécute définit des en-têtes de cache appropriés qui devraient indiquer que la page peut être mise en cache pendant 15 minutes. Cependant, chaque fois que j'accède à la page, il envoie toujours une demande GET au lieu de charger la page à partir du cache.
Je n'actualise pas forcément la page à chaque fois, ce qui, je suppose, indiquerait au navigateur que je veux vider les caches. Je n'ai aucun contournement du cache en mode développeur activé.
Est-ce simplement le comportement par défaut des navigateurs, ou ai-je raté quelque chose d'évident? Voici les en-têtes de demande / réponse de frapper ma page d'accueil à partir des outils de développement FireFox:
NOTE / EDIT : Certaines personnes ont suggéré que cela était lié au fait que l'en- Expires
tête était dans le passé. Cependant, Cache-Control
remplace tout ce qui se trouve dans Expires
, comme décrit dans RFC 2616 , Sec 14.9.3. Drupal inclut cela pour désactiver la mise en cache sur les anciens clients HTTP 1.0, qui ne prennent pas en charge l'en- Vary
tête plus avancé dont Drupal a besoin pour une mise en cache appropriée.
Dans les programmes CMS, certaines pages nécessitent une interaction avec la base de données pour afficher le contenu dynamique spécifique à la demande des utilisateurs. La page entière ne peut pas être mise en cache ou elle n'affichera pas le contenu correct à l'utilisateur.
Un exemple de cela dans la pratique est une page de panier / de paiement de commerce électronique. Étant donné que la page est différente à chaque fois, il n'y a aucun moyen de la mettre en cache complètement. Sans en savoir plus sur la page spécifique, il est difficile de savoir si la page à laquelle vous faites référence nécessite une implication dans la base de données.
la source
En plus des autres réponses, l'en-
Expires
tête appartient au passé, c'est également une raison pour laquelle les navigateurs ne mettront pas la page en cache.la source
Cache-Control
tête est présent. Il remplace l'en-Expires
tête pour les clients HTTP 1.1. Voir ietf.org/rfc/rfc2616.txt , section 14.9.3.