eddi: HTTP HEAD und Last-Modified

Beitrag lesen

Re:

Es zeigt alle angelieferten Request-Header an. Bei meinem Opera folgende Header aber _nicht_ gesenden:

[HTTP_IF_MODIFIED_SINCE] => Thu, 09 Mar 2006 17:27:56 GMT
    [HTTP_IF_NONE_MATCH] => "1b-40e93326f9f00"

Warum sollte er auch?

Um Traffic zu sparen?!

Erste Anforderung des Scriptes, mein Browser kennt die Ressource noch gar nicht - kein Grund für ein Conditional GET.

Na vielen Dank; daß bei Erstanfrage keine Konditionen zu erwarten sind, brauchst Du mir nun doch nicht erklären.

OK, zweite Anforderung des Scriptes - ja, jetzt sollte der Browser mindestens einen der Request-Header für ein Conditional GET mitschicken - tut er aber, wie gesagt, eben nicht, wenn ich die Ressouce über [F5] erneut anfordere - weil er dann davon ausgehen darf, dass ich sie wirklich auf jeden Fall neu geladen haben möchte.

Das hört sich ja fast so an wie: Während der Opera in einem fairen Duell den ausgezeichneten zweiten Platz erringen konnte, mußte sich der Mozilla mit dem vorletzten Platz begnügen ;$

Da käme jetzt in meinem Beispiel der Link auf die Ressource ins Spiel - der erfordert keinen expliziten Reload.
Also schaut mein Browser nach - "hab ich die Seite noch im Cache? Ja, hab ich - also mach' ich mal einen Conditional GET, um mich zu erkundigen, ob sie noch aktuell ist."
_Hier_ käme jetzt der 304 ins Spiel.
Und da liegt der Knackpunkt, warum du mit deinem Beispielscript nicht nachvollziehen können wirst, ob der Browser das korrekt implementiert hat, oder nicht:
Macht mein Browser keinen Conditional GET, weil ich wie oben beschrieben explizit ein neu laden der Ressource angefordert habe - dann bekommst du keinen If-Modified-Since- oder If-None-Match-Header in der Ausgabe deines Scriptes zu sehen - die wären für den Reload fehl am Platze, dürften hier gar nicht auftauchen.

Also fordert man in einem weiteren Tab die Resource erneut an. Und siehe da: Nix - gar nichts - nicht mal ein Eintrag im Serverlog?!
Das war aber wieder Hinweis genug mir die Konfiguration anzusehen, und genau da liegt der Hund begraben. Opera kommt mit einer beschissenen Grundeinstellung daher - alle Resourcen erst nach 5 Stunden auf Aktualität zu prüfen...

Wie war das noch mal mit Schnitzeln und Knie?

Wie dem auch sei, es ist mir nunmehr gelungen auch dem Opera einen If-Header zu entlocken und ich kann nur sagen, diese Software hat mit einigen Modifikationen durchaus das Zeug dazu, sich eines Tages auch als Browser bezeichen zu lassen ;þ

Gruß aus Berlin!
eddi