Thread Last-Modified und bei if_modified_since CGI beenden?
(24 answers)
Opened by rosti at 2011-03-30 15:14
Moin;
es ist richtig, derzeit werte ich IF_MODIFIED_SINCE im Script nicht aus, sondern setze nur den LAST_MODIFIED in die Response. Das ist mir möglich, weil im CMS auch die "mtime" hinterlegt ist und {lastmod} eines der Attribute für die auszugebende Ressource ist. Möglich wäre auch, einen ETag zu generieren, tatsächlich empfehlen Suchmaschinenbetreiber jedoch, Lastmod zu verwenden. Sofern der Webserver entsprechend konfiguriert ist, vergleicht er IF_MODIFIED_SINCE (Request) mt LAST_MODIFIED was er vom CGI bekommt, sendet bei Übereinstimmung einen 304 und schließt die Verbindung. Da hatte ich gestern einen Denkfehler, es ist klar, dass der Webserver das CGI startet, ansonsten hätte er keinen Vergleich (danke Bianca). Mit Cookies hat das alles nichts zu tun, aber es macht keinen Sinn, etwa einen Hinweis "Bitte Cookie annehmen" in eine Seite einzubauen, die mit einem LastMod ausgeliefert wird, denn die nimmt der Browser in den Cache und cacht auch den Hinweis, obwohl der Browser den Cookie angenommen hat. Fazit: Den Request-Header IF_MODIFIED_SINCE im CGI auswerten zu müssen, hängt von der Konfiguration des Webservers ab, also ob der Server die Zeiten vergleicht und sich um den 304 kümmert, oder das im CGI programmiert werden muss. Allein aufgrund dieser Abhängigkeit ist es gut, den IF_MODIFIED_SINCE auch im CGI auszuwerten, im CGI einen 304 zu senden und die weitere Auslieferung von Content zu stoppen. Quote Die Frage habe ich so noch nicht gestellt. Da wäre zunächst zu klären, ob der Webserver zuerst den Cookie sendet und danach den 304 oder umgekehrt. Im ersten Fall vermute ich, dass der Browser den Cookie annimmt, im Zweiten nicht. AAAberrrrrr: Edit: Quatsch, der Status kommt _immer_ zuerst :) Sofern diese Frage wirklich akut werden sollte, würde ich das mal testen und unbedingt in die RFCs schauen, was dazu steht. Wenn es nicht gerade ein Non-parsed-Header-Script ist, was das CGI sendet, bestimmt der Webserver die Reihenfolge der Response-Header. Bis dann ;) Rolf Edit: Test, Annahme Cookie bei 304, gesendet wird er und FF speichert ihn. Code: (dl
)
1 http://test/ Last edited: 2011-03-31 09:14:10 +0200 (CEST) |