Hi,
1.) Zum einen ist es ein GET und kein HEAD! D.h. Dein Browser fragt auch nicht nach den http-headern, sondern will auch alles.
Korrekt. In dem ersten von Dir zitierten Beispiel ist der Browser allerdings so eingestellt, daß er nur beim ersten Zugriff die JS-Datei anfordert und bei Folgeseiten (wie Du ja auch siehst) nicht mehr. Diese Einstellung ist bei meinen Besuchern übrigens so wi ich das auf den ersten Blick sehe am häufigsten.
2.) Wie groß ist Deine js-Datei? Sie ist doch genau 4722 Bytes groß! Also, nix mit "nicht laden" wenn im Cache!
Genau. Aber wenn Du Dir das zweite Beispiel ansiehst, wirst Du feststellen, daß der Browser die Datei erneut per Get anfordert und
"GET /1ngo.js HTTP/1.0" 304 -
sie nicht erneut übertragen wird sondern nur mit Statuscode 304 (nicht geändert) geantwortet wird. An Traffic fallen also nur die paar Headerdaten an.
Meine Logs von meiner Datei belegen jetzt ganz klar, dass zwar keine Komplettfiledownloads stattfinden, aber GET's (keine HEAD's) mit immer schön 12346 Bytes pro Datei und Seite
Und mit welchen Statuscode? Und wirklich genau diese "12346" Byte? Eine sehr merkwürdige Zahl... Abgesehen davon: stelle Dir eine Seite mit 20 kleinen Gifs vor, wenn jeder Header alleine 12kb ausmachen würde - unvorstellbar.
Und für den Server ist eine *.js auch nur eine Datei wie jede andere auch - er muß lediglich den passenden Typ im Header übermitteln.
Ich bin gespannt, was bei Dir rauskommt, wenn Dein Browser eine .js Anfrage macht und die 1ngo.js im Cache ist.... Ehrlich! Vielleicht sogar mehr Daten, als wenn die Datei geladen wird.
Auf jeder meiner Seiten wird dasselbe Javascript eingebunden und dieses enthält zwei Abfragen, die während des Ladens bereits ausgeführt werden. Wie ich schon sagte, wird die js-Datei - obwohl sie benutzt wird - meist nicht erneut angefordert und wenn doch mit 304 quittiert.
HEAD-Anfragen verzeichne ich übrigens fast ausschließlich nur von AOL (die sparen ja vermutlich mit ihrem Proxy).
freundliche Grüße
Ingo