-
[HTML] cache html et jsp
Je developpe une application 3-tiers sous tomcat4 et j'utilise le browser IE6.
A partir d'une page JSP, l'utilisateur fait appel à une autre page JSP qui s'ouvre dans un popup grâce à la méthode window.open.
Je souhaite garder dans le cache du browser du Client la page JSP correspondant au popup.
Bine sûr, je n'ai pas dans la popup la balise <META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-CACHE">, dans options Internet-General-Parametres-(Verifier s'il existe une version plus récente des pages enregistrées) -Automatiquement. Et, après un premier appel de la popup, je vois la page JSP correspondante dans le répertoire Temporary Internet Files.
Malgré tout, IE6 continuer d'appeler la page JSP sur le serveur et non dans son cache. Quelqu'un peut-il m'aider ? merci d'avance
-
Je viens de tester et on constate que la page jsp de la popup est accédée dans le cache et en même temps récupérée sur le serveur. On dirait que c'est le serveur qui prime sur le cache quand IE accède à une page JSP. Le problème disparait quand on fait appel à une vraie page HTML( c'est dans le cache que IE6 va chercher sa page HTML ). Comment expliquer et résoudre ce problème avec les JSP ?
-
Le cache Web, c'est assez merdique à gérer, malheureusement.
Pour connaître la différence de traitement entre la page HTML statique et la page dynamique, il faut que tu analyses et compares les entêtes HTTP renvoyés par le serveur dans les 2 cas. Ensuite, tu demandes à la JSP de la pop-up de renvoyer les entêtes qui manquent ou qu'il faut corriger.
Car la gestion des caches, c'est avant tout une histoire d'entête HTTP. En gros, l'idée c'est que le serveur indique au client combien de temps ou jusqu'à quand la ressource qu'il récupère est valable. Pour cela, il utilise des entêtes du style Cache-Control ou Expires.
Dans tous les cas, il faut que tu sois capable de dire combien de temps ta JSP sera valable dans l'absolu et indépendamment de toute information de session. Si le contenu change par rapport à des données d'authentification par exemple, t'es embêté : tu ne pourras pas utiliser de cache, car si un gars se déconnecte et se reconnecte dans la foulée avec un autre utilisateur, il verra les infos de l'ancien utilisateur.
Un doc pas mal : http://www.mnot.net/cache_docs/index.fr.html