PyroPeter's homepage (PyroPeters Heimseite)

IPv6 ready since 2010

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