F5 und Strg+F5 – der Unterschied

Bei lima-city arbeiten wir ständig daran, die Webseiten unserer vielen User möglichst schnell auszuliefern.

Damit das auch noch bei der großen Menge an Usern vernünftig funktioniert setzen wir seit einiger Zeit den Cache „varnish“ ein, der die Antworten des Webservers, wie im Standard RFC2616 beschrieben, cached.

Dies bringt den Vorteil mit sich dass viele Anfragen, besonders Bilder, Javascript und CSS-Dateien beim zweiten Aufruf wesentlich schneller ausgeliefert werdem.

Das kann aber störend sein, wenn an der Webseite gerade etwas geändert wurde und dadurch die Änderungen nicht sofort durch einen Reload (mit F5) sichtbar werden. Aus diesem Grund gibt es in allen gängigen Browsern den Reload mit Strg+F5. Hier wird dem Server ein zusätzlicher HTTP-Header gesendet, der den Server anweist, den Cache zu aktualisieren (Pragma: co-cache oder Cache-Control: no-cache, eine genauere Übersicht dazu gibt es auf stackoverflow).

Also: wenn Änderungen nicht angezeigt werden: statt F5 einfach die Tasten Strg+F5 drücken und die Seite wird vollständig aktualisiert.

 

5 Kommentare

  1. Den letzten Absatz würde ich zugunsten der Lesbarkeit (und des Verständnisses) um drei Wörter ergänzen:

    Von
    „Also: wenn Änderungen nicht angezeigt werden: statt F5 Strg+F5 drücken und die Seite wird vollständig aktualisiert.“

    zu
    „Also: wenn Änderungen nicht angezeigt werden: statt F5 einfach die Tasten Strg+F5 drücken und die Seite wird vollständig aktualisiert.“

  2. pr

    18. Oktober 2013 at 17:34

    Done 🙂 Danke für den Hinweis

  3. >> Hier wird dem Server ein zusätzlicher HTTP-Header gesendet, der den Server anweist, den Cache zu aktualisieren …

    Diesen Satz verstehe ich weder in Bezug auf einen HTTP-Client, noch ohne diesen. Wieso sollte ein Server einem anderen Server einen Header senden? Und falls doch, warum sollte das meinen Browser interessieren?

    Irgendwie erschließt sich mir der Sinn hinter diesen verschiedenen F5+Qualifer-Tastenkombinationen auch nicht: Ein vernünftiger Client prüft vor einem Request, ob der Cache-Inhalt veraltet ist. Ist er es, fordert er die Resource neu an. Ist er es nicht, fragt er per Conditional Request (mit If-Modified-Since oder ETag) nach, ob der Server trotzdem was neues hat. Falls ja, liefert ein vernünftig konfigurierter Server das Gewünschte und falls nicht, gibt er per HTTP-Statuscode 304 Bescheid, dass alles beim Alten geblieben ist.

    Das ganze Pragma/Cache-Control/e.t.c.-Gewusel ist für (Caching-)Proxies gedacht. Es sollte einen gewöhnlichen HTTP-Client (a.k.a. Browser) nicht interessieren, egal welche wirre Tastenkombi der User drückt. Ich bevorzuge für Reloads übrigens [Ctrl]+[R], die funktioniert in allen standardkonformen Browsern, nicht nur in den gängigen. 😉

    • Um den Aufbau der Seiten zu beschleunigen, wurde wie oben beschrieben ein Caching-Server dazwischen geschaltet. Deswegen wird auch der extra Hinweis benötigt.

      • Ich hab schon mitbekommen, dass es hier um einen Caching-Proxy geht, der zwischen Client und Webserver hockt. Nur hat lima sowas doch schon länger (seit 2008 oder so). Und ich kann mich nicht erinnern, auf Client-Seite jemals Probleme gehabt zu haben, wenn ich da einen „gewöhnlichen Reload“ gemacht hätte.

        >> gibt es in allen gängigen Browsern den Reload mit Strg+F5.

        Als Mobiltelefon- und SmartPad-Browser-Benutzer steht man da ziemlich hilflos da …

Kommentare sind geschlossen.