Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Cache ou pas cache?

1 view
Skip to first unread message

Patrice

unread,
May 20, 2012, 12:07:24 PM5/20/12
to
Bonjour � toutes et � tous,

Ma question est simple mais pas si ais�e � poser: j'aimerais savoir
qu'est-ce qui "force" un navigateur (n'importe lequel j'imagine) �
t�l�charger pr�f�rentiellement dans le cache (qu'importe l'OS), ou au
contraire � t�l�charger le document depuis le serveur, m�me s'il y en a
d�j� une copie dans le cache?

En clair, est-ce que cette information (cache ou pas cache) est fournie
dans l'ent�te du document t�l�charg� - c'est � dire que la prochaine
fois qu'on essaiera de t�l�charger le m�me document, on ira par exemple
le chercher sur serveur - ou est-ce que je me trompe compl�tement?

Merci d'avance de vos r�ponses,

Bien � vous tous,

PC

SAM

unread,
May 21, 2012, 8:47:08 AM5/21/12
to
Le 20/05/12 18:07, Patrice a écrit :
> Bonjour à toutes et à tous,
>
> Ma question est simple mais pas si aisée à poser: j'aimerais savoir
> qu'est-ce qui "force" un navigateur (n'importe lequel j'imagine) à

de ce que j'ai cru comprendre ...
sauf avis contraire lancé par le serveur dans ses en-têtes(*),
ou, accessoirement, dans les balises 'méta' du fichier,
tout est systématiquement stocké dans le cache .. à la 1ère visite

ensuite, et pour les pages "normales", lors d'un appel à tel ou tel
fichier (html, média, etc), le navigateur négocie avec le serveur pour
savoir s'il n'y en a pas une version plus récente,
si non, il prend celui du cache
si oui, il en télécharge la nouvelle version

le cache n'étant pas extensible (au-delà de ce qu'on a choisi) il se
sépare totomatiquement des fichiers
- les moins revus
- les plus vieux

> En clair, est-ce que cette information (cache ou pas cache) est fournie
> dans l'entête du document téléchargé - c'est à dire que la prochaine
> fois qu'on essaiera de télécharger le même document, on ira par exemple
> le chercher sur serveur - ou est-ce que je me trompe complètement?

Là, le téléchargement "volontaire" c'est autre chose
il a 2 options
- le rechargement "forcé"
- le rechargement normal (pris depuis le cache)
(Control + R ≠ clic sur adresse et touche retour)


> Merci d'avance de vos réponses,


(*) <http://www.mnot.net/cache_docs/#WORK>


infos complémentaires :
<http://www.mnot.net/cache_docs/>
<http://www.rankspirit.com/balises.php>


--
Stéphane Moriaux avec/with iMac-intel

Patrice

unread,
May 21, 2012, 5:43:54 PM5/21/12
to
Le 21/05/12 14:47, SAM a écrit :
...
>
> ensuite, et pour les pages "normales", lors d'un appel à tel ou tel
> fichier (html, média, etc), le navigateur négocie avec le serveur pour
> savoir s'il n'y en a pas une version plus récente,
> si non, il prend celui du cache
> si oui, il en télécharge la nouvelle version
>

Merci de votre réponse. Cependant une question me turlupine: quand il
s'agit d'une page dynamique (script php, perl etc) comment cela se
passe-t-il? J'ai un cas bizarre avec Safari et mon site web: pendant
plusieurs jours il a considéré qu'une de mes pages était 404 alors qu'il
a simplement fallu ce soir que je rafraichisse avec Alt-R (sous Mac)
pour que la page apparaisse enfin. Je n'avais pas eu ce réflexe avant,
étant encore assez peu familier avec ma nouvelle machine.

Je m'étais imaginé que dès qu'il s'agit d'une page dynamique (en ce qui
concerne la mienne, elle est en perl cgi) le navigateur ne se pose pas
de question et va toujours télécharger sur serveur. Ce n'est pas
toujours le cas?

Merci encore d'avance pour votre aide, et bonne soirée,

PC

SAM

unread,
May 22, 2012, 11:45:16 AM5/22/12
to
Le 21/05/12 23:43, Patrice a écrit :
> Le 21/05/12 14:47, SAM a écrit :
> ...
>>
>> ensuite, et pour les pages "normales", lors d'un appel à tel ou tel
>> fichier (html, média, etc), le navigateur négocie avec le serveur pour
>> savoir s'il n'y en a pas une version plus récente,
>> si non, il prend celui du cache
>> si oui, il en télécharge la nouvelle version
>>
>
> Merci de votre réponse. Cependant une question me turlupine: quand il
> s'agit d'une page dynamique (script php, perl etc) comment cela se
> passe-t-il?

As-tu lu : <http://www.mnot.net/cache_docs/> ?

> J'ai un cas bizarre avec Safari et mon site web: pendant
> plusieurs jours il a considéré qu'une de mes pages était 404 alors qu'il
> a simplement fallu ce soir que je rafraichisse avec Alt-R (sous Mac)
> pour que la page apparaisse enfin. Je n'avais pas eu ce réflexe avant,
> étant encore assez peu familier avec ma nouvelle machine.

Ni la machine, ni le navigateur n'avaient été relancés pendant ces jours
là ?
(normalement, le re-démarrage de l'application ou, au pire, de tout
l'ordi, équivaut à ce Alt + R )


Est-ce que le phénomène est reproductible ?
(a été reproduit)

> Je m'étais imaginé que dès qu'il s'agit d'une page dynamique (en ce qui
> concerne la mienne, elle est en perl cgi) le navigateur ne se pose pas
> de question et va toujours télécharger sur serveur. Ce n'est pas
> toujours le cas?

Heu ... cela ne dépend-il pas aussi du serveur, de son cache ?
(si l'url n'est pas modifiée, sans doute que le serveur ne va pas
relancer tout l'toutim s'il s'en était mis le résultat en cache et s'il
n'a pas d'instructions contraires comme par exemple un délai de validité)
N'y a t-il pas une histoire de session là-dessous ?

revoir : <http://www.mnot.net/cache_docs/#IMP-SCRIPT>
et, possiblement, essayer d’intéresser les contributeurs du NG php à ton
problème de cache(s) serveur et des headers en php
news:fr.comp.lang.php

Pierre Goiffon

unread,
May 25, 2012, 5:39:05 AM5/25/12
to
Le 21/05/2012 23:43, Patrice a écrit :
> Je m'étais imaginé que dès qu'il s'agit d'une page dynamique (en ce qui
> concerne la mienne, elle est en perl cgi) le navigateur ne se pose pas
> de question et va toujours télécharger sur serveur. Ce n'est pas
> toujours le cas?

L'user agent n'a aucun moyen de savoir qu'il y a un traitement de
génération derrière une URI !
Il faut donc bien faire attention aux entêtes que l'on envoie aux
clients... en pensant que comme d'habitude, le serveur propose mais le
client dispose : autrement dit, il peut faire ce qu'il veut
indépendamment des entêtes reçus.

Lisez bien le document pointé par SAM, c'est une absolue référence sur
le sujet !
Lisez plutôt la version originale, j'ai pu constater il y a quelques
années quelques erreurs dans la traduction française qui n'ont pas été
corrigées, et depuis j'ai toujours le doute sur la version fr.

J'ajoute également que le get conditionnel a l'avantage d'épargner
potentiellement un téléchargement, et permet de contrôler côté serveur
quand la resource doit être maj. MAIS : s'il y a une chose précieuse et
qui impacte directement les performances, c'est le nombre de connexions
HTTP que le navigateur doit ouvrir ! Les diminuer est une des façon les
plus efficaces d'améliorer de plusieurs secondes souvent les chargements !
Comme toujours, trouver le bon compromis... A ce sujet, vous pourrez
vous diriger vers l'excellent site dédié aux performances de Yahoo :
http://developer.yahoo.com/performance/.
0 new messages