dedlfix: Browser-Cache, Server-Cache verstehen...

Beitrag lesen

Tach!

  • Nun gibt es aber zusätzlich zum Browser-Cache auch noch den Server seitigen Server-Cache.

Den gibt es nur, wenn man ihn in irgendeiner Weise aufsetzt. In einfachen Installationen gibt es keinen. Solche Caches lohnen sich erst bei größeren Geschichten. Vielfach sind Caching-Mechanismen auch nur in den Anwendungen implementiert, an die der Webserver Requests durchreicht, nicht aber im Webserver selbst.

Wird eine Webseite vom Server abgefragt so sind hierfür bei nicht statischen Seiten Datenbankabfragen notwendig. Die aus den Datenbankabfragen generierte HTML-Seite wird auf dem Server im Cache zwischengespeichert.

Wie gesagt, das ist nicht zwangsläufig der Fall. Zugriffe zu PHP-Scripten werden üblicherweise immer wieder neu von PHP abgehandelt. Der Webserver kann nicht wissen, ob PHP neue Daten liefern würde oder nicht. (Diese Aussage gilt sinngemäß auch für andere im Webserver eingebettete Application-Mechanismen.)

Wird die identische Webseite nun ein weiteres mal aufgerufen, so wird auf die Datenbankabfrage auf dem Server verzichtet, es wird gleich die fertige zwischengespeicherte HTML-Seite vom Server zurückgeliefert.

Es werden URLs aufgerufen. Das müssen nicht nur Webseiten sein, es gibt auch jede Menge andere Inhalte.

Angenommen ich leere den Browsercache niemals, dann habe ich ja immer eine veraltete Version der Webseite?

Theoretisch ja, praktisch verwaltet das der Browser für dich und beachtet dabei auch Empfehlungen der Serverbetreiber, wie lange die Daten gültig sind.

Angenommen ich leere den Servercache niemals, dann habe ich ja immer eine veraltete Version der Webseite?

Das kommt darauf an, wie die Anwendungen ihre Caches verwalten. Da sind üblicherweise Logiken dahinter, die bei sich ändernden Daten eine Invalidisierung des Inhaltes bewirken, woraufhin beim nächsten Request die Daten im Cache neu erzeugt werden.

Vorgeschaltete Caches würden vielleicht dieses Problem haben. Aber auch die konfiguriert man nicht so, dass veraltete Daten ausgeliefert werden.

Mit Hilfe von STRG+F5 kann ich ja die Seite neu vom Server laden, ohne das auf die Ressourcen im Browser-Cache zugegriffen wird. Trotzdem kann es aber sein das ich eine veraltete Cache-Version des Servers erhalte.

Kann sein, muss aber nicht. Der Browser wird in dem Fall dem Server nicht sagen, dass er bereits die Version vom Zeitpunkt X kennt, so dass der Server nicht antworten kann, dass er nichts neues habe.

Welche Möglichkeit gibt es um eine Rückmeldung vom Server zu erhalten die nicht aus dem Server-Cache stammt?

Da es "den Server-Cache" nicht gibt, ist die Frage nicht allgemeingültig beantwortbar.

dedlfix.