Frédéric a écrit :
> Bonjour,
>
> Je suis en train de mettre au point un script mod_python, que j'envoie sur
> le serveur à chaque modification.
>
> Derrière, je recharge la page depuis Frefox, et les résultats sont
> complètement fantaisistes : le code reçu n'est pas toujours le dernier.
>
> Pire, en faisant plusieurs rechargements successifs, sans rien changer sur
> le serveur, je reçois le code de la version n-1, n-2, voir plus, et ce de
> façon aléatoire à chaque rafraichissement !!!
>
> C'est quoi ce bins ? Je précise que je ne suis derrière aucun proxy...
>
> Merci de vos lumières.
>
>
Tu as ces résultats avec des requêtes xmlhttprequest ou des requêtes sur
des pages completes, en tout étant de cause, il existe des directives
dans l'en-tête http que tu devrais utiliser dans tes réponses pour dire
au navigateur de ne pas mettre en cache tes données si celles-ci sont
"vivantes" :
En HTTP/1.0 :
Pragma:no-cache
En HTTP/1.1
Cache-Control:no-cache
Si tu ne veux pas empêcher le cache de fonctionner, tu peux alors
utiliser l'en-tête d'expiration :
Expires: Thu, 01 Dec 1994 16:00:00 GMT
qui indique la date à laquelle la ressource doit être rechargée.
J'utilise en général ce champ en plus du Cache-control pour certains
navigateurs qui ne comprennent pas la directive cache-control.
D'une manière générale le mécanisme est bien décrit dans la rfc 2616
seciont 14.9
http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html
Une autre technique pour "berner" le navigateur et son cache sur les
requêtes http est d'ajouter un champ dans les requêtes GET qui sera
différent à chaque requête (timestamp par exemple - avec la fonction js
Time.time())
au lieu de
http://foo/collection/resource, tu fais la requête sur :
http://foo/collection/resource?timestamp=1726535654
il faut prendre garde si tu utilises deja des parametres :
http://foo/col/res?idres=42 devient :
http://foo/col/res?idres=42×tamp=172634559
Bon courage
Stéphane.
--
Stéphane Bonhomme -- Exselt Services
Formations, Conseil et Réalisations en Ingénierie Documentaire,
Technologies Web et Logiciels Libres
stephane@??? - http://www.exselt.com
04 57 39 30 78 / 06 88 57 27 08