Halihallo Alexander
Das funktioniert hervorragend mit den verschiedensten Browsern (getestet mit IE ab 4, NN ab 4.0x, Opera ab 3.x, Mozilla).
Das klingt ja schon mal gut. Nur würde mich interessieren, welche Browser sich eben _nicht_ an die Spielregeln halten.
Alle müssen. Siehe Michael Schröpls Antwort.
Das ist SEHR beruhigend, wirklich. Dachte schon, dass ich hier ins Gras beissen muss und die Aufgabe nicht lösen kann ;)
Wie willst du denn die Ladezeiten abschätzen? - Etwa die Differenz der Zeiten vom ersten bis zum letzten Hit auf die Domain mit gleicher IP?
[...]
Hab ich leider nicht so ganz sauber geschrieben, weil der Kopf mal wieder schneller als die Finger war.
Deshalb die Nachfrage ;)
Zudem würde mich eine Lösung interessieren (also ich hab ja auch ein paar auf Lager).
Deine Seite muß (1.) dynamisch erzeugt werden und (2.) beim Erzeugen muß in eine Datenbank (nicht notwendigerweise relational, eine Text-Datei könnte reichen) genau der zufällige Teil der Bild-URL mit Timestamp als "Startmarke" geschrieben werden. Wenn dann das Bild geladen wird, schreibt das "Bild-Ausgebe-CGI" eine entsprechende "Stopmarke" in die Datenbank.
Das Bild muß möglichst weit hinten in der HTML-Datei stehen, damit es nicht schon geladen werden kann, bevor die HTML-Datei geladen ist.
Zum Auswerten sucht man nun Paare von Start- und Stopmarken aus der Datenbank und berechnet die Zeitdifferenz.
Aha. Wenn man dies nun noch auf alle Ressourcen einer Page (eg. alle externen Scripts, alle Bilder, ...) ausweiten würde, dann hätte man in der Tat eine sehr genaue Referenzzeit. Aber eben, leider bin ich auf eine Client-seitige Lösung angewiesen und da wirds bekanntlich "etwas" unmöglich ;-)
Bzw. über die von mir genannte Zwischenlösung über IP und Cookie Identification, wobei auch das, wie ich bereits beschriebene habe, ziemlich in "die Hosen gehen kann"... Aber ich denke, dass deine rein serverbasierte Lösung durchaus gut ist.
Natürlich ist das Verfahren nicht 100% sicher, allein schon deswegen, weil einige böse Surfer die Bilder nicht laden.
Wenn du wie gesagt, alle Ressourcen misst, dann hättest du auch dann eine, wenn auch sehr ungenügende, Referenzzeit (eg. weil der Nicht-Bildlader das laden von externen .js Dateien nicht unterbinden kann)... Aber wie ich auch schon sagte, habe ich es vorwiegend mit 0815-Usern zu tun => Cookies aktiv, JS aktiv, Bilder aktiv, Sicherheitslücken aktiv ;)
Aber die Kombination aus Zeit (sekundengenau), Client-IP-Adresse und einer Zufallszahl sollte einen einzelnen Surfer -- für diese Messung -- ausreichend genau identifizieren. Man kann das sicher noch weiter spinnen, z.B. den HTTP_USER_AGENT noch mit aufnehmen, oder den REMOTE_PORT (in der HTML-Seite als Parameter für das Bild). Man kann natürlich auch noch versuchen, einen eindeutigen Cookie zu setzen und den auch noch mit "verwursten".
Entscheidend ist, möglichst viele Informationen zu einem möglichst eindeutigen Key zusammenzufassen.
Und dann einen MD5 darüber legen und schon hat man einen durchaus zu gebrauchenden und nahezu uniquen Fingerprint des Clients, der auch nur 128bit gross ist :-)
Viele Grüsse
Philipp