Andreas Korthaus: / (JAVASCRIPT): Caching-Probleme (bei auto-refresh, server-push simulieren)

Beitrag lesen

Hallo Philipp!

Die Zeit... Die Zeit ist wie ein Raubtier. Du kannst ihm vielleicht
einige male entrinnen, aber am Ende holt es dich immer ein.

In diesem Sinne erst jetzt meine Antwort.

wir verstehen uns... ;-)

Ich halte den Traffic ebenfalls nicht für so problematisch, wie der
erhebliche Aufwand der Scripte. Aber liesse sich diese
Authentifizierung und Überprüfung nicht irgendwie in eine Session
abbilden? - Also: Session einmal eröffnet, ist alles überprüft und es
muss nur noch die Session-Authentizität sichergestellt werden?

Es gibt 2 Probleme:

1. wie stelle ich die Session-Authentizität denn sicher?

Durch Prüfung ob eine Session-ID übergeben wurde wäre wohl etwas - na sagen wir mutig ;-) Prüfung ob es im TMP-Verzeichnis eine Datei mit der Session-ID als Namen gibt (bzw. so wie PHP das eben speichert, ich glaub das war sess_[SID]), wobei ich mich hier auf den GC verlassen müsste, das heißt ich habe mit Sicherheit auch ungültige/abgelaufene Sessions da liegen. In jedem Fall muss man sicherstellen dass die Session-Daten in einem eigenen Verzeichnis / DB liegen, und nicht mit den Daten anderer vhosts kollidieren, wie es out-of-the-box der Normalfall ist.

2. In der Software gibt es eben Bereiche, auf die nicht jeder User zugreifen darf.

Vergleichbar mit einem Forum, wo nur bestimmte User Admin-Rechte haben. Wie willst Du jetzt diese Admin-User erkennen? Die Information steht in der Session, aber die ist ja eigentlich ein serialisierter PHP-Array. Daher könnte der User die Information im Query-String mitsenden (da habe ich ja direkt Zugriff drauf), ich muss nur gegenprüfen ob das was er da sendet auch korrekt ist. Dies sollte dann mit einer mod_rewrite-Geschichte wie unten erwähnt möglich sein.

Ja, Firefox scheint in der Tat nur Bilder zu cachen... Andere
Ressourcen werden stets neu geladen; habe ich gerade auch bei mir
reproduziert. Nun, wenn es bei allen anderen ähnlich läuft, warum
nicht einfach kein Bild senden (ich z.B. habe es mit einem Flash-Film
versucht, der wurde immer neu geladen).

Hm, irgendwie habe ich kein gutes Gefühl dabei mich auf sowas zu verlassen.

RewriteCond %{QUERY_STRING} ID=([0-9]+)
RewriteCond %{HTTP_COOKIE} SID=([0-9a-z]{32})
RewriteCond %{DOCUMENT_ROOT}/ckeck/%0/%1 -f

Ein sehr interessanter Ansatz, wirklich!

Diese Seite ist einigermaßen elegant, aber die andere Seite (Erzeugung der Dateien bei Änderung) ist nicht wirklich schön ;-)

Nun, falls es denn für deine Aufgabe überhaupt möglich ist eine
staatische Datei als Ausgabe zu definieren, so würde immer noch
einiges an Script-Traffic entstehen. Nur: wesentlich weniger als
vorher, im Normalfall. Denn: Das Script müsste nur noch im Falle
einer Datenänderung ausgeführt werden (Trigger) und nicht mehr im
Falle jedes (Lese-)Zugriffs auf "detector.php" (was jetzt eben die
as-is Datei wäre). Da Änderungen im genannten Normalfall wesentlich
weniger Häufig sind, als Anfragen auf das Set-Cookie-File
(detector.php), sinkt der Traffic auf das Script stark und wird durch
die schnellere "as-is-Architektur" (nur noch Apache, kein PHP!)
ersetzt.

ja, das ist in meinen Augen der wichtigste Effekt. Was mir allerdings nicht wirklich gefällt ist, dass ich bei meiner mod_rewrite Geschichte be jeder Änderung der Daten viele Dateien (eine je User) erstellen oder löschen muss. Gut, die Anzahl der User ist überschaubar, trotzdem nicht wirklich elegant.

(btw.: mod_rewrite kann auch Cookies setzen, aber ich glaube das bringt in diesem Zusammenhang nicht viel, da man den "Dateisystem-Cache" ja verändern muss, und das geht mit mod_rwrite AFAIK nicht)

Aber den
Gedanken wollte ich dennoch kurz loswerden (für die Script-Kiddies,
die mal einen so geilen HTTP-Chatroom haben möchten :-)).
Woher weißt Du... ;-)

... na, ich will natürlich auch so'n Ding! :-)

Dacht ichs mir doch ;-)

Viele Grüsse und schönen Abend wünscht dir
Das wünsch ich Dir auch und vielen Dank für die Anregungen (mal wieder ;-))!

HTH, natürlich :-)

immer...

Ach, die Servergeschichte von mir ist auch in Arbeit,

Das mit dem verteilten System?

aber du weisst
ja, wie es in der Wirtschaft läuft... laaaangsaaaam.

Hach ja...

Aus dem anderen Posting:

Vielen Dank für den Test! (wenn Du den nicht gemacht hättest hätte ich Deine andere Antwort wohl nicht mehr gelesen ;-))

Warum hättest du meine erste Antwort nicht mehr gelesen? *lange-
leitung-hab-heute*

"Die Zeit... Die Zeit ist wie ein Raubtier" ;-)
Ich hatte wenig Zeit und vermute dass der Thread im Archiv verschwunden wäre, hättest Du nicht noch den Test nachgeschoben...

Viele Grüße
Andreas

--
SELFHTML Feature Artikel: http://aktuell.de.selfhtml.org/artikel/