Hallo,
Dieser "Conditional Request" und auch die Reaktion des Servers darauf ist nicht davon abhängig, ob die Seite ststisch oder dynamisch erzeugt wird.
UA(egal) steckt in den Request-Header die Frage:
"If-Modified-Since: date_time_x"
wobei date_time_x das Datum+Uhrzeit ist, was UA im Cache hat, weil UA die Seite schonmal requestet hat vor einiger Zeit.
Richtig.
Der Webserver, der das unterstützt, schreibt in den Header:
"Last Modified: date_time_y"
wobei er für y das Dateidatum nimmt, sofern es eine HTML-Datei ist, die direkt aus dem Dateisystem gezogen wird. Wurde jedoch ein CGI-Script requestet, was zur Laufzeit erzeugt wurde, ist dieses Header-Field nicht vorhanden (dynamischer Content).
Diesen Header gibt er auch aus, wenn er das If-Modified-Since nicht versteht oder nicht verstehen "will".
Das Entscheidende ist jedoch der HTTP-Status der HTTP-Response. Der ist "304 Not Modified", wenn der Server mitteilen will: Ja, deine gecachte Version ist noch aktuell, ich hab auch nichts neueres.
Im anderen Fall sendet er ganz normal einen Status 200 und liefert die angeforderte Ressource aus.
Durch diesen Mechanismus ist der Conditional Request vollständig abwärtskompatibel zu HTTP-Servern und -Clients, die das nicht kennen.
Ciao,
Martin
In Ägypten haben früher 150000 Leute 35 Jahre lang an einer Pyramide gearbeitet. Aber bei uns arbeiten doppelt so viele Leute doppelt so lange allein an der Baugenehmigung.
(Dieter Nuhr, deutscher Kabarettist)