blog/Cache_Hack.txt
.oooooo. oooo
d8P' `Y8b `888
888 .oooo. .ooooo. 888 .oo. .ooooo.
888 `P )88b d88' `"Y8 888P"Y88b d88' `88b
888 .oP"888 888 888 888 888ooo888
`88b ooo d8( 888 888 .o8 888 888 888 .o
`Y8bood8P' `Y888""8o `Y8bod8P' o888o o888o `Y8bod8P'
ooooo ooooo oooo
`888' `888' `888
888 888 .oooo. .ooooo. 888 oooo
888ooooo888 `P )88b d88' `"Y8 888 .8P'
888 888 .oP"888 888 888888.
888 888 d8( 888 888 .o8 888 `88b.
o888o o888o `Y888""8o `Y8bod8P' o888o o888o
________________________________________________________________________________
Ich stolperte in letzter Zeit über einen POC, der aufgrund der geänderten
Textfarbe von Links zu besuchten Seiten die Firefox-History auf bestimmte URLs
prüfen konnte. [ach dreck, zu wenig zucker im tee]
Bla Bla Bla ... Mich auf die Idee, ... Bla Bla ... Browser-Cache ...
Bla Bla Bla ... Unterschiedliche Ladezeit ... Bla ... POC fertiggestellt
Er läd Bilder in ein <img>-node, und misst die Ladezeit. Mit ein wenig Geschick
kann man aus der generierten Ladezeittabelle sehr schön ablesen, welche Bilder
aus dem Cache kommen, und welche erst geladen werden müssen.
Das ganze kann man hier ausprobieren: $BLOG/files/Cache_Hack/cachesniffer.xhtml
================================================================================
=== iFAQ =======================================================================
--> Fragen, die Ich oft stellen würde, wenn es mich mehrmals gäbe, und der Code
nicht sowieso von mir wäre.
01. ,,Wieso lädst du ständig 'little.gif?foo=sep' ?´´
Sobald eine URL zwei Mal in der Liste der zu ladenden URLs auftaucht,
funktioniert das Script nicht mehr. (Weil kein neues event.LOAD generiert
wird.)
Darum ist jedes zweite Bild dieses eine Seperatorbild.
Außerdem kann die Ladezeit des ersten Bildes nicht akurat ermittelt werden.
(Alle gängigen Browser hauen auf den ersten Wert 30-70ms drauf.)
02. ,,Wieso lädst du jedes Bild zwei Mal?´´
So erhält man zwei Werte und weiß zusätzlich vom letzten, dass er die
Ladezeit aus dem Cache angibt.
03. ,,Warum wird ein Teil der URLs dynamisch mit der aktuellen Zeit versehen?´´
Weil der Browser diese Bilder immer neu lädt. Es ist auf Dauer unpraktisch,
nach jeder kleinen Codeänderung den Cache leeren zu müssen.
================================================================================
=== LINKS ======================================================================
* Der oben erwähnte History-CSS-Hack POC:
http://ha.ckers.org/weird/CSS-history-hack.html
* Mein Cache-Hack POC:
http://keks.selfip.org/blog/files/Cache_Hack/cachesniffer.xhtml