Hi Kai,
Ich selbst verwende ähnliche Buttons, aber keiner davon
ist größer als 500 bytes und ich sende zudem noch HTTP-
Header zum ""aggressiven Caching" durch den Browser mit.
Hää??
man kann dem Server irgendwie sagen, was zu cachen ist - wie man
da aber aggressiver wird als die browserdefault, weiß ich nicht.
der Browser-Default nützt nichts, wenn der Browser nicht weiß, was
er tun soll.
Wenn ein Server dem Browser eine Datei sendet, dann kann dieser Browser
natürlich den Inhalt in seinem Cache ablegen.
Aber wenn der Benutzer das nächste Mal diesen Inhalt sehen will, muß
der Browser entscheiden, ob er den Inhalt noch verwenden darf oder ob
der schon veraltet ist. Wie macht er das?
a) Der Server hat dem Browser vielleicht mitgeteilt, wie lange der
den Inhalt aufbewahren darf (das mache ich). Dann kann der Browser
- _wenn_ er richtig eingestellt ist - dem Server glauben und den
Inhalt weiter verwenden.
b) Der Server hat nichts gesagt (und per Default kann er das auch
gar nicht - woher soll denn der Server wissen, wann ich gedenke,
den Inhalt der Datei auszutauschen?).
In diesem Falle muß der Browser den Server fragen - jedes Mal!
Der Browser sendet also an den Server eine Anforderung:
"Hallo Server, ich möchte gerne den Inhalt der Datei X. Ich habe
übrigens in meinem Cache schon die Version vom timestamp Y - darf
ich die weiter verwenden?" (ein "conditional GET")
Und der Server antwortet entweder
"Ja, Du darfst diese Version weiter verwenden" (HTTP-Status 304)
oder
"Nein, aber hier hast Du einen neuen Inhalt" (HTTP-Status 200).
Die 304-Requests machen einen erheblichen Anteil am gesamten Server-
Traffic aus - beim Self-Portal sind es um die 40%!
Glücklicherweise sind diese Antworten sehr klein - nämlich 0 Byte
Nutzinhalt - aber immerhin sind an HTTP- und TCP-Headern zweimal
ungefähr 500 Bytes über die Leitung gejagt worden.
Wenn Du also eine typisches kleines Markierungs-Bildchen von gerade
mal 50 Bytes hast, dann würde ein normaler Zugriff 1050 Bytes kosten
- aber eine Cache-Überprüfung kostet mit 1000 Bytes fast genauso viel!
Da kannst Du Dir die Caching-Wirkung gerade mal in die Haare schmieren.
Dasselbe gilt natürlich für JavaScript- und CSS-Dateien. Je kleiner,
desto nutzloser wird das Caching, wenn der Browser nicht schlau ist
und gleich gar nicht erst fragt.
P.S.: Ach ja - und komprimiert könnte man die Seiten natür-
lich auch ausliefern ... gerade bei Deinen "luftigen"
HTML-Einrückungen dürfte Faktor 3-4 durchaus drin sein.
Hää??
du verbrätst viel Dateiplatz mit Leerzeichen will er damit sagen.
Yep. Lesetip: http://www.schroepl.net/projekte/mod_gzip/
Viele Grüße
Michael