Jens Peter: 304 Not Modified, was ist bei Änderung der Datei?

Moin,

kann ich den Eintrag "304, Datei nicht geändert" im Logfile bekommen, selbst wenn die entsprechende Datei bereits geändert ist.

Anders gefragt, wirken sich Browser-, Server- oder Proxy-Cache auf den Eintrag 304 im logfile aus, wenn die Datei geändert wird?

Ich brauche Eure Hilfe, da ich mich nicht im Dschungel zum HTTP Protokoll der RFC's zurechtfinde.
http://www.ietf.org/iesg/1rfc_index.txt

Danke!

Freundliche Grüße
Jens

  1. Hi,

    kann ich den Eintrag "304, Datei nicht geändert" im Logfile bekommen, selbst wenn die entsprechende Datei bereits geändert ist.

    klar. Geändert seit wann?

    Ein 304 kommt, wenn der Client einen Request mit "If-Modified-Since"-Header gesendet hat, und das angegebene Datum jünger ist als das Änderungsdatum der Datei. Oder natürlich, wenn er aktiv z.B. von einem Script herausgeschrieben wird.

    Anders gefragt, wirken sich Browser-, Server- oder Proxy-Cache auf den Eintrag 304 im logfile aus, wenn die Datei geändert wird?

    Nein. Ein Cache bewirkt höchstens, dass die Ressource _nicht_ angefordert wird, jedoch nicht, dass der Server unsinnig antwortet. Dies kann evtl. durch falsche Header vom Client passieren - aber das Vergleichsdatum stammt aus einem vorherigen Response Deines Servers. Wenn auf diesem also nicht zwischenzeitlich die Uhrzeit verändert wurde...

    Ich brauche Eure Hilfe, da ich mich nicht im Dschungel zum HTTP Protokoll der RFC's zurechtfinde.

    http://www.ietf.org/rfc/rfc2616.txt

    Cheatah

  2. Moin,

    kann ich den Eintrag "304, Datei nicht geändert" im Logfile bekommen, selbst wenn die entsprechende Datei bereits geändert ist.

    Der Browser fragt beim Server unter Angabe des ihm bekannten Dateidatum (last_modified) nach, ob es eine neuere Version der Datei gibt. Wenn das der Fall ist, wird die neue Datei übertragen, ansonsten nicht. Die zweite Nachfrage (nachdem die neuere Datei einmal übertragen wurde) wird wieder 304 zur Folge haben, da der Browser ja jetzt den aktuellen Stand kennt.

    Anders gefragt, wirken sich Browser-, Server- oder Proxy-Cache auf den Eintrag 304 im logfile aus, wenn die Datei geändert wird?

    In der Theorie ist 304 genau dafür da, Datenübertragungen zu sparen, indem nur bei Neuerungen die Datei übertragen wird.

    Der Browsercache kann so eingestellt werden, daß der Browser nie, immer oder nach x Stunden mal nach einer neuen Version fragt. Beim Netscape kann man das mit Shift+Klick auf Reload erzwingen, andere Browser machen es beim normalen Reload.

    Wenn Proxys im Spiel sind, kriegt der Server entweder garnichts mit (Proxy hat die alte Seite und findet sie selbst noch aktuell, ohne zu fragen), oder er fragt nach. Ist vom Browsernachfragen nicht zu unterscheiden.

    Der Server hat keinen Cache, der das Verhalten in diesem Zusammenhang beeinflussen sollte.

    Es scheint, du hast ein konkretes Problem. Vielleicht schilderst du es mal, dann gibts vielleicht auch konkrete Lösungen.

    - Sven Rautenberg