Bonjour,Mise en cache du navigateur via java
J'utilise CacheFilter pour filtrer un certain chemin vers mon serveur (qui délivre un flux d'images dans le flux de réponse). Et je l'ai configuré dans mon web.xml comme suit:
<filter>
<filter-name>imagesCache</filter-name>
<filter-class>com.samaxes.cachefilter.presentation.CacheFilter</filter-class>
<init-param>
<param-name>privacy</param-name>
<param-value>public</param-value>
</init-param>
<init-param>
<param-name>expirationTime</param-name>
<param-value>2592000</param-value>
</init-param>
</filter>
...
<filter-mapping>
<filter-name>imagesCache</filter-name>
<url-pattern>/my/path/*</url-pattern>
</filter-mapping>
En utilisant mon firefox, si j'accéder à mon URL via la barre d'adresse, il frappe le serveur la première fois, mais utilise le cache lors d'appels suivant. Toutefois, si l'URL est à l'intérieur de ma page (c'est-à-dire <img src="..."/>
), il semble frapper le serveur tout le temps. [EDIT] Après quelques tests supplémentaires, l'accès à mon image via la barre d'adresse ne fonctionne pas tout le temps. Mais la mise en cache semble fonctionner plus souvent avec. Quant à savoir si vraiment, je ne suis pas sûr.
Informations supplémentaires: mon chemin est quelque chose comme/mon/chemin? Then = certains & query = chaînes. Notez qu'il n'a pas d'extension (c'est-à-dire gif, png, jpeg) mais que son type mime est correctement défini (image/gif, image/png, image/jpeg). Je ne suis pas sûr si le manque d'extension ou la présence des chaînes de requête ont un impact. (En outre, une autre note, bien que mon URL ait des chaînes de requête, j'utilise la même chaîne de requête uri + encore et encore avec mes tests).
Des idées pourquoi?
Merci
Merci, Actuellement, je définis les en-têtes Cache-Control et Expires dans les réponses. Devrais-je définir Cache-Control dans les en-têtes de la requête à la place? Re: firefox: Wdym? Je ne fais que tester avec le 'refresh button' ou avec 'F5' et non avec Shift + RefreshButton ou Ctrl + F5. ... Voulez-vous dire que RefreshButton de firefox est un rafraîchissement dur par lui-même? Merci, –
@Franz: Si vos en-têtes de réponse permettent la mise en cache pendant suffisamment longtemps, c'est correct. Les en-têtes de demande de Firefox peuvent être vus si vous utilisez Firebug ou un autre plug-in de développement Web; cette information devrait être * vraiment * utile ici. La sémantique de F5 et Ctrl-F5 sont: http://support.mozilla.com/tiki-view_forum_thread.php?style_mode=inproduct&locale=fr&comments_parentId=333668&forumId=1 Aussi, essayez d'entrer votre URL, puis en entrant une URL différente, puis entrez à nouveau votre première URL, en évitant les boutons Actualiser et Précédent/Suivant. –