2009-06-12 5 views
5

J'utilise un simple filtre de servlet qui force le navigateur à ignorer la mise en cache pour certaines ressources du serveur:La meilleure façon de désactiver la mise en cache du client

 
    Cache-Control: private 
    Pragma: 

Cela fonctionne très bien dans Internet Explorer, mais il ne fonctionne pas bien avec Firefox 3.0.10. J'ai fini par écrire ce code:

 
    Cache-Control: no-cache, no-store, must-revalidate, max-age=-1 
    Pragma: no-cache, no-store 
    Expires: -1 // -1 is the unix time, the client receives a date in 1969 :) 
    Last-Modified: -1 // ditto 

Ceci force firefox à ne rien mettre en cache. Qu'en est-il des autres navigateurs? Qu'en est-il des meilleures pratiques sur les en-têtes sans cache qui fonctionnent sur les principaux navigateurs?

Répondre

7

Drupal 6 Est-ce (qui fonctionne dans tous les navigateurs connus par moi):

  • Expires: Dim 19 Nov 1978 05:00:00 GMT
  • Last-Modified: Ven , 12 juin 2009 08:01:46 GMT (la date de modification réelle)
  • cache-Control: magasin, no-cache, doit-revalidate, rétrocontrôle = 0, pré-check = 0

Aucun en-tête de pragma dans cette instance. Je ne sais pas pourquoi votre exemple ne fonctionne pas, il pourrait être les timestamp négatifs, cela fonctionne sur ~ 250,000 sites Drupal :)

+0

merci de partager cette information – dfa

1

Votre solution initiale ne fonctionnait pas correctement parce que:

  • Cache control est utilisé pour spécifier les directives qui DOIVENT être respectées par tous les mécanismes de mise en cache le long de la chaîne de requête/réponse. Les seuls mécanismes que je connais sont des proxies, donc les agents utilisateurs ne sont pas liés par cela. L'Pragma: en-tête n'inclut pas de valeur. Je ne suis pas sûr que ce soit même légal - en termes de protocole HTTP.
+0

Pragma sans valeur est bien géré par IE :) – dfa

+0

Oui, par IE. Vous avez spécifiquement demandé d'autres navigateurs. En outre, j'ai dit que la solution ne fonctionnait pas de manière fiable, pas que cela n'a pas fonctionné. –

Questions connexes