Maison > Questions et réponses > le corps du texte
F5 et Ctrl+F5 déclenchent dans les navigateurs Web ?
J'ai fait des expériences avec IE6 et Firefox 2.x. Un rafraîchissement F5 déclenchera une requête HTTP au serveur contenant un en-tête If-Modified-Since
, tandis que Ctrl+F5 n'aura pas un tel en-tête. D'après ma compréhension, F5 essaiera d'exploiter autant que possible le contenu mis en cache, tandis que Ctrl+F5 vise à supprimer tout le contenu mis en cache et à tout récupérer à nouveau sur le serveur.
Mais aujourd'hui, j'ai remarqué que dans certains des derniers navigateurs (Chrome, IE8), cela ne fonctionne plus de cette façon. F5 et Ctrl+F5 envoient tous deux l'en-tête If-Modified-Since
.
Alors, comment cela est-il censé fonctionner, ou (s'il n'y a pas de norme) en quoi les principaux navigateurs diffèrent-ils dans la manière dont ils implémentent ces fonctions d'actualisation ?
P粉6656790532023-10-12 00:09:28
Cela dépend du navigateur, mais ils se comportent de la même manière.
F5 Généralement, ne met à jour une page que lorsqu'elle a été modifiée. Les navigateurs modernes envoient Cache-Control: max-age=0
pour indiquer la durée maximale (par rapport à la durée de la demande) pendant laquelle toute ressource mise en cache sera considérée comme fraîche.
CTRL-F5 est utilisé pour forcer une mise à jour, en ignorant tout cache. Les navigateurs modernes envoient Cache-Control: no-cache
和 Pragma: No-cache
Si je me souviens bien, Netscape a été le premier navigateur à ajouter la prise en charge du contrôle du cache en ajoutant lorsque vous appuyez sur CTRLPragma: No-cache
- < kbd>F5.
┌───────────┬──────────────┬─────┬─────────────────┬──────────────────────────────┐ │ Version 4 │ F5 │ R │ CLICK │ Legend: │ │2021 MAY 19├──┬──┬──┬──┬──┼──┬──┼──┬──┬──┬──┬──┬──┤ C = Cache-Control: no-cache │ │ │ │S │C │A │A │C │C │ │S │C │A │A │C │ I = If-Modified-Since │ │ │ │H │T │L │L │T │T │ │H │T │L │L │T │ M = Cache-Control: max-age=0 │ │ │ │I │R │T │T │R │R │ │I │R │T │T │R │ N = Not tested │ │ │ │F │L │ │G │L │L │ │F │L │ │G │L │ P = Pragma: No-cache │ │ │ │T │ │ │R │ │+ │ │T │ │ │R │+ │ - = ignored │ │ │ │ │ │ │ │ │S │ │ │ │ │ │S │ │ │ │ │ │ │ │ │ │H │ │ │ │ │ │H │ With 'CLICK' I refer to a │ │ │ │ │ │ │ │ │I │ │ │ │ │ │I │ mouse click on the browsers │ │ │ │ │ │ │ │ │F │ │ │ │ │ │F │ refresh-icon. │ │ │ │ │ │ │ │ │T │ │ │ │ │ │T │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ 1: Version 3.0.6 sends I │ ├───────────┼──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼──┤ and C, but 3.1.6 opens │ │Brave 1.24 │M │CP│CP│- │- │M │CP│M │CP│CP│M │CP│CP│ the page in a new tab, │ ├───────────┼──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼──┤ making a normal request │ │Chrome 1 │MI│MI│MI│- │- │MI│- │MI│MI│MI│MI│MI│N │ with only I. │ │Chrome 6 │MI│CP│CP│- │- │MI│CP│MI│CP│CP│MI│- │N │ 2: Version 10.62 does │ │Chrome 90 │M │CP│CP│- │- │M │CP│M │CP│CP│M │CP│CP│ nothing. 9.61 might do C │ ├───────────┼──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼──┤ unless it was a typo in │ │Edge 90 │M │CP│CP│- │- │M │CP│M │CP│CP│M │CP│CP│ my old table. │ ├───────────┼──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼──┤ 3: Opens the currernt tab in │ │Firefox 3.x│MI│- │CP│- │- │MI│CP│MI│CP│1 │M │MI│N │ a new tab, but does not │ │Firefox 89 │M │- │CP│- │M │M │CP│M │CP│3 │M │M │3 │ refresh the page if it is │ ├───────────┼──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼──┤ cached in the browser. │ │MSIE 8, 7 │I │- │C │- │I │I │ │I │I │C │I │I │N │ │ ├───────────┼──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼──┤ │ │Opera 10, 9│C │- │- │2 │- │C │- │C │C │C │C │- │N │ │ │Opera 76 │M │CP│CP│- │- │M │- │M │CP│CP│M │CP│CP│ │ ├───────────┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──────────────────────────────┤ │ https://stackoverflow.com/a/385491/36866 │ └─────────────────────────────────────────────────────────────────────────────────┘
Remarque sur Chrome 6.0.472 : Si vous effectuez un rechargement forcé (par exemple CTRL-F5), il se comporte comme si l'URL était marquée en interne comme toujours un rechargement forcé. Si vous accédez à la barre d'adresse et appuyez sur Entrée, le drapeau sera effacé.
P粉6752585982023-10-12 00:02:55
De manière générale :
Même si le contenu change,F5 peut vous servir la même page car il peut charger la page depuis le cache. Mais Ctrl+F5 forcera une actualisation du cache et garantira que vous obtiendrez du nouveau contenu s'il change.