HTTP Header Expires und Last-Modified

Hallo Allerseits,

Mir ist das Zusammenspiel der beiden Header „Expires“ und „Last-Modified“ nicht klar.

Wenn ich beide befülle, wird der Browser dann erst nach dem Ablaufen der Expires-Zeit beim Server mit If-Modified-Since nachfragen ob sich die Datei geändert hat? Oder macht er das auch schon innerhalb der Expires-Zeit?

Danke und schöne Grüße, Robert

Hi,
Falls Dir http://www.w3.org/Protocols/rfc2616/rfc2616-sec13.html auch nicht verständlich sein sollte:

Expires sind “starke” Cache-Header, d.h. der Browser macht bis zum Ablauf keine weiteren GET-Anfragen.

Last-Modified ist ein “schwacher” Cache-Header, der es dem Browser erlaubt, selbst zu bestimmen, ob und wann er die Seite neu anfordert - was insb. beim expliziten Neuladen einer Seite von Vorteil ist.

Somit solltest Du Dich für eine der Angaben entscheiden.

Gruß
Ingo

Hallo Ingo,

Danke für deine Antwort. Den RFC habe ich schon mal angeschaut, aber mir war draus nicht klar was passiert wenn beides da ist.

Am Besten wäre wenn dann der Browser für den Expires-Zeitraum überhaupt kein GET macht und danach mit If-Modified-Since anfragt.

Schlechter wäre wenn der Browser beim vorhanden sein von Last-Modified auch innerhalb des Expires-Zeitraum ein GET mit If-Modified-Since macht.

Im ersten Fall würde es in manchen Fällen schon Sinn machen beides zu schicken, im zweiten Fall nicht.

Schöne Grüße, Robert

Hi,

Am Besten wäre wenn dann der Browser für den Expires-Zeitraum
überhaupt kein GET macht und danach mit If-Modified-Since
anfragt.

so wie ich die Spezifikation verstehe, müsste das der Fall sein, wenn beides angegeben wird: wenn die starke Direktive nicht mehr greift, muss auf die schwache zurückgegriffen werden.
Aber vielleicht kann das jemand hier noch verifizieren?

Gruß
Ingo