Reginald Schlönpflug: Browser-Cache, Server-Cache verstehen...

Beitrag lesen

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

Das hängt vom Browser und den Seitendaten ab. Der Browser wird nicht unendlich viele Daten vorhalten, der Speicherplatz ist begrenzt. Selten genutzte und/oder alte Daten werden daher automatisch aus dem Cache gelöscht.

Vor allem aber kann jedem Objekt, das per HTTP ausgeliefert wird, ein Gültigkeitszeitraum mitgegeben werden, Stichworte dazu sind Cache-Control, Expires, Last-Modified, ETag und dergleichen. Der Seitenbetreiber sollte wissen, wie lange seine Daten "haltbar" sind und entsprechende Angaben machen.

Ein allgemeines Wort zum Mechanismus: Erhält ein Browser ein Objekt mit einem Verfallsdatum (Expires), ruft er bis dahin das Objekt entweder gar nicht mehr ab oder nur sehr selten. Objekte ohne Cache-Angaben werden bei jeder Nutzung mit dem Server abgeglichen. Im Detail ist beides aber browser- und einstellungsabhängig.

Für jedes im Cache vorhande Objekt stellt der Browser des weiteren nur bedingte Anfragen, d.h. er sendet in seiner Anforderung gleich eine Information über den Status des Objektes in seinem Cache mit (üblicherweise den letzten Abrufzeitpunkt (If-Modified-Since) oder eine Prüfsumme (If-None-Match)). Der Server antwortet darauf entweder mit einem kompletten Objekt oder nur mit der kurzen Antwort, dass sich nichts geändert hat (304 Not Modified).

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

Der Seitenbetreiber sollte wissen, wie lange seine Daten "haltbar" sind. Einen serverseitigen Cache aufzusetzen ohne dafür zu sorgen, dass die Daten in Ordnung sind, ist kompletter Unsinn.

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

Gar keine. Du solltest vielmehr davon ausgehen, dass der Serverbetreiber sich die Sache gut überlegt hat und besser als du weiss, welche Daten er dir aushändigen möchte.