Alexander Foken: Online-Offline-Status realisieren

Beitrag lesen

Moin Moin !

HTTP ist per Definition ein "stateless" Protokoll, sprich: garantiert online ist Dein Besucher nur in dem kurzen Moment, in dem eine TCP-Connection zum Webserver besteht, um eine Resource anzufordern und auszuliefern. Danach kannst Du nicht einmal mehr raten, ob der Besucher noch online ist.

Stell Dir folgendes Script vor:

#!/bin/sh

Starte Dial-Up-Verbingung

ppp-manager dial

Eine Resource anfordern und speichern

lynx -dump http://www.example.com/php/foobar.php > somefile.html

Beende Dial-Up-Verbindung

ppp-manager hangup

Übersetzt nach Windows:
@echo off
ppp-manager dial
lynx -dump http://www.example.com/php/foobar.php > somefile.html
ppp-manager hangup

(ppp-manager ist irgendein Programm, daß die PPP-Verbindung steuert.)

Bei einer DSL-Verbindung ist das Script bestenfalls in weniger als einer Sekunde fertig. Beim Server kommt dabei exakt eine TCP-Verbindung für den Webserver an, mit einem GET-Request für /php/foobar.php, die der Webserver irgendwie beantwortet. Danach wird die Verbindung beendet und Du hast absolut keine Chance herauszufinden, ob der Client "noch da" ist, denn nach dem Auflegen kann die freigegebene IP-Adresse des Clients sofort für den nächsten Surfer vergeben werden. D.h. selbst wenn ein Ping funktionieren würde, kannst Du nicht sicher sein, ob die Antwort auf den Ping von demjenigen kommt, der den Request abgeschickt hat.

Einwände? Das Script ist unrealistisch?

Nicht unbedingt. Man kann so z.B. prima nach Updates für Virenscanner suchen. Oder man benutzt einen Dialing Deamon, der die Verbindung nur bei echtem Bedarf für einen kurzen Moment herstellt, z.B. weil man per Handy arbeiten muß.

V.92-Modems haben übrigens eine nette Funktion, die es erlaubt, die Verbindung zur Gegenstelle beim Provider zu "parken", dabei wird zwar die Telefonleitung aufgelegt (um z.B. zu Telefonieren), aber bei der nächsten Einwahl erkennen sich Modem und Gegenstelle wieder und sparen sich das langwirige Aushandeln der Verbindungsparameter, d.h. die Verbindung ist quasi sofort wieder da. Auf höheren Protokollebenen, z.B. IP, könnte das aber bedeuten, daß eine neue Adresse vergeben wird.

Alexander

--
Nein, ich beantworte keine Fragen per eMail. Dafür ist das Forum da.
Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so!"