Hallo,
ich beginne grade mich mit HTTP zu beschäftigen und, speziell das Thema "caching" und finde auch eine Menge Anleitungen und Infos aber ich bin nirgendwo darauf gestossen wo man denn nun die Regeln reinschreibt.
In den Header der Seite, in eine htaccess datei oder ein anderes Dokument?
Da muss ich mal weiter ausholen. Irgendein Hugo tippt in seinen Browser ein:
http://example.com
Das ist der Request. Der Apache (Webserver) guckt in seine Konfiguration und weiß was zu tun ist:
Die Datei /index.html (Default) aus dem Dateisystem fischen, einen HTTP-Header zusammenbauen und die Datei dranhängen. Das ist die Response.
-> Die Konfiguration des Apache bestimmt, was in den Header kommt, welcher Content-type das ist usw. Content-Type, Charset, Last-Modified, u.a. sind Felder in diesem Header, die in einschlägigen RFCs beschrieben sind.
Willst Du Einfluss auf den Header, musst Du entweder in die Konfiguration des Apachen eingreifen, oder den Apachen mit PHP/Perl (serverseitiger Prozess) anweisen, was zu machen ist. Gewöhnlich wird in Perl mit einem
print "Content-type: text/html\n\n";
der Webserver angwiesen, dieses Feld in den HTTP-Header einzubauen und dazu seinen DefaultCharset dazuzugeben. Soll also das Charset verändert werden, musst das dem Server mitgeteilt werden, z.B. so
print "Content-type: text/html; Charset=UTF-8\n\n";
In PHP guckt der Parser, ob solche Anweisungen im Script notiert sind, hier heißt die Funktion header(); mit welcher PHP den Webserver was anweist, z.B.
header("Content-type: text/html; charset=$charset");
Genauso funktioniert das mit den anderen Header-Feldern, auch fürs Cachen.
http://rolfrost.de/lastmod.html
Neben Last-Modified, dem ältesten Verfahren, gibt es Weitere, wie Du schon schriebst. Aber schau Dir ruhig mal meinen Artikel an, ich denke er trägt zum Verständnis bei.
Horst