Cache ou pas cache?

Le
Patrice
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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
SAM
Le #24494701
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,




(*)

infos complémentaires :


--
Stéphane Moriaux avec/with iMac-intel
Patrice
Le #24496361
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
Le #24498251
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 :
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 : 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

--
Stéphane Moriaux avec/with iMac-intel
Pierre Goiffon
Le #24506011
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/.
Publicité
Poster une réponse
Anonyme