413 Stimmen

Welche Anfragen generieren die Browser "F5" und "Strg + F5" zum Aktualisieren?

Gibt es einen Standard für welche Maßnahmen F5 y Ctrl + F5 in Webbrowsern auslösen?

Ich habe einmal ein Experiment mit IE6 und Firefox 2.x durchgeführt. F5 eine HTTP-Anfrage auslösen, die an den Server mit einer If-Modified-Since Kopfzeile, während Ctrl + F5 hätte keine solche Überschrift. Nach meinem Verständnis, F5 wird versuchen, zwischengespeicherte Inhalte so weit wie möglich zu nutzen, während Ctrl + F5 soll alle zwischengespeicherten Inhalte aufgeben und einfach alle Inhalte erneut von den Servern abrufen.

Aber heute ist mir aufgefallen, dass es in einigen der neuesten Browser (Chrome, IE8) nicht mehr auf diese Weise funktioniert. Beide F5 y Ctrl + F5 senden die If-Modified-Since Kopfzeile.

Wie soll das also funktionieren, oder (falls es keinen Standard gibt) wie unterscheiden sich die großen Browser in der Umsetzung dieser Aktualisierungsfunktionen?

536voto

some Punkte 45857

Es hängt vom Browser ab, aber sie verhalten sich ähnlich.

F5 aktualisiert die Seite normalerweise nur, wenn sie geändert wird. Moderne Browser senden Cache-Control: max-age=0 um jedem Cache mitzuteilen, wie lange eine Ressource maximal als frisch angesehen wird, bezogen auf den Zeitpunkt der Anfrage.

CTRL - F5 wird verwendet, um eine Aktualisierung zu erzwingen, ohne Rücksicht auf den Zwischenspeicher. Moderne Browser senden Cache-Control: no-cache y Pragma: No-cache

Wenn ich mich richtig erinnere, war es Netscape, der als erster Browser Unterstützung für die Cache-Kontrolle durch Hinzufügung von Pragma: No-cache als Sie die Taste CTRL - 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 CPCP- - M CPM CPCPM CPCP    the page in a new tab,    
    making a normal request   
Chrome 1   MIMIMI- - MI- MIMIMIMIMIN     with only I.              
Chrome 6   MICPCP- - MICPMICPCPMI- N  2: Version 10.62 does        
Chrome 90  M CPCP- - M CPM CPCPM CPCP    nothing. 9.61 might do C  
    unless it was a typo in   
Edge 90    M CPCP- - M CPM CPCPM CPCP    my old table.             
 3: Opens the currernt tab in 
Firefox 3.xMI- CP- - MICPMICP1 M MIN     a new tab, but does not   
Firefox 89 M - CP- M M CPM CP3 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, 9C - - 2 - C - C C C C - N                               
Opera 76   M CPCP- - M - M CPCPM CPCP                              

                    https://stackoverflow.com/a/385491/36866                     

Hinweis zu Chrome 6.0.472 : Wenn Sie einen erzwungenen Reload durchführen (wie CTRL - F5 ) verhält es sich so, als ob die URL intern so markiert ist, dass sie immer neu geladen werden muss. Die Markierung wird gelöscht, wenn Sie zur Adressleiste gehen und die Eingabetaste drücken.

332voto

dancavallaro Punkte 12769

Ganz allgemein gesprochen:

F5 kann dieselbe Seite anzeigen, auch wenn der Inhalt geändert wurde, da die Seite möglicherweise aus dem Cache geladen wird. Aber Ctrl + F5 erzwingt eine Cache-Aktualisierung und garantiert, dass bei einer Änderung des Inhalts auch der neue Inhalt angezeigt wird.

70voto

Pavel Podlipensky Punkte 8091

Ich habe eine Cross-Browser-kompatible Seite zum Testen implementiert das Aktualisierungsverhalten des Browsers (hier ist den Quellcode ) und erhalten ähnliche Ergebnisse wie @some, allerdings für moderne Browser:

enter image description here

10voto

mermshaus Punkte 626

Zumindest in Firefox (v3.5) scheint der Cache zu sein deaktiviert und nicht nur geräumt. Wenn es mehrere Instanzen desselben Bildes auf einer Seite gibt, wird es mehrfach übertragen. Dies ist auch der Fall bei img Tags, die später über Ajax/JavaScript hinzugefügt werden.

Falls Sie sich also fragen, warum der Browser auf Ihrer automatisch aktualisierten Ajax-Site immer wieder das gleiche kleine Symbol herunterlädt, liegt das daran, dass Sie die Seite ursprünglich mit CTRL - F5 .

4voto

Phil Haselden Punkte 2666

IE7/8/9 scheinen sich unterschiedlich zu verhalten, je nachdem, ob die Seite den Fokus hat oder nicht.

Wenn Sie die Seite anklicken und CTRL + F5 dann wird "Cache-Control: no-cache" in die Header der Anfrage aufgenommen. Wenn Sie in der Leiste Standort/Adresse klicken und dann die Taste CTRL + F5 ist es nicht.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X