Noch ne Frage zu Etag und Not Modified
hotti
- webserver
Also irgendwie verstehe ich das nicht. Der Server (leased) sendet Etag und Last-Modified, der Browser fragt mit denselben Werten an und der Server liefert stets einen Status: 200 (.html, .css, .js)
Normalerweise sollte ein Status: 304 da kommen.
Nun, ich habe mit FileETag None in der .htaccess den Etag mal ausgeknirpst und siehe da, die 304-Geschichte läuft wie geschmiert. Ist der Server evntl. ein klein bischen nicht ganz so richtig konfiguriert?
Bitte mal um Hilfestellung,
Horst Hirschhorn
Der Server (leased) sendet Etag und Last-Modified, der Browser fragt mit denselben Werten an und der Server liefert stets einen Status: 200 (.html, .css, .js)
Normalerweise sollte ein Status: 304 da kommen.
Nun, ich habe mit FileETag None in der .htaccess den Etag mal ausgeknirpst und siehe da, die 304-Geschichte läuft wie geschmiert.
Der ETag für statische Dateien wird aus I-Node, Dateigröße und letztem Änderungszeitpunkt berechnet. Der Änderungszeitpunkt geht (logischerweise) in Last-Modified, daran kann's also nicht liegen. Ich würde sicherheitshalber erstmal I-Node und Dateigröße prüfen (zB mit ls -il in einer Shell, falls vorhanden), auch wenn ich nicht wüsste, warum sich die zwischen zwei Aufrufen ändern sollten.
Alternativ könntest du auch die drei FileETag-Optionen einzeln durchprobieren, dann müsste es doch eigentlich bei MTime funktionieren und bei mindestens einem der beiden anderen haken.
h1,
Nun, ich habe mit FileETag None in der .htaccess den Etag mal ausgeknirpst und siehe da, die 304-Geschichte läuft wie geschmiert.
Der ETag für statische Dateien wird aus I-Node, Dateigröße und letztem Änderungszeitpunkt berechnet. Der Änderungszeitpunkt geht (logischerweise) in Last-Modified, daran kann's also nicht liegen. Ich würde sicherheitshalber erstmal I-Node und Dateigröße prüfen (zB mit ls -il in einer Shell, falls vorhanden), auch wenn ich nicht wüsste, warum sich die zwischen zwei Aufrufen ändern sollten.
Das ist ja das Komische, der Etag ändert sich nicht, wird in IF_NONE_MATCH genauso zurückgegeben, aber der Server liefert die Seite trotzdem neu aus. Na, egal, ich weiß ja nun, wo ich das abstellen kann, auch wenn ich nicht genau weiß, was mein ISP da am Server konfiguriert hat. Auf jeden Fall ist es nicht verkehrt, ab und zu mal die Header zu prüfen ;-)
Hotti
مرحبا
ab und zu mal die Header zu prüfen ;-)
Wie prüfst du denn die Header?
mfg
h1,
Wie prüfst du denn die Header?
Wireshark, Ethereal, PCAP, tcpdump....
Also, die genannten Tools lesen den TCP-Verkehr auf dem Netzwerkinterface. Da siehst Du genau, was passiert, wie der Request rausgeht und das an Response kommt. Je nach Programm kannst Du da Filter setzen oder einen TCP-Stream verfolgen, damit siehst Du auch die Header.
HTTP ist so kompliziert nicht. Vereinfacht ausgedrückt, stellt TCP das Socket, das ist im Prinzip wie ein Dateihandle wo was reingeschrieben und wieder ausgelesen wird. Im Request, wie auch in der Response werden erst die Header in das Socket geschrieben, das sind Zeilen mit "\n" am Ende. Das Ende der Header wird durch eine Leerzeile kenntlich gemacht, dann kommen evntl. noch Daten (hier muss beim Request der Header Content-Length angegeben sein).
Bei einer Response kommen auch erst die Header, dann ne Leerzeile und dann HTML, der MessageBody. Alldas siehst Du mit Wireshark und Co% und Du siehst auch den kompletten Datenverkehr.
Auf die Schnelle (*) prüfe ich die Header (nur die) mit dem Plugin Tamper-Data an FF.
(*) naja, manchmal ist Ethereal schneller zur Hand ;-)
Hotti
مرحبا
Wie prüfst du denn die Header?
Wireshark, Ethereal, PCAP, tcpdump....
Ok, du weisst, was du tust ;)
Bei einer Response kommen auch erst die Header, dann ne Leerzeile und dann HTML, der MessageBody. Alldas siehst Du mit Wireshark und Co% und Du siehst auch den kompletten Datenverkehr.
Das werde ich mir mal ansehen, Aktuell prüfe ich lediglich mit Page-Speed, da es mir an sich schon reicht; aber ich lerne gerne dazu.
Auf die Schnelle (*) prüfe ich die Header (nur die) mit dem Plugin Tamper-Data an FF.
Hast du auch schon geprüft, welche Module aktiviert sind bei dir?
Ich hatte erst kürzlich bei einem Exotischen Provider "schwierigkeiten", der einige Module nicht drauf hatte, und weil ich in der htaccess mit <if modul...>
die Optionen setze, brauchte ich 2 Stunden, bis ich die Ursache gefunden hatte.
mfg