http als verbindungsloses Protokoll "ohne State"
Lude
- programmiertechnik
Hi,
bin erst seit zwei Monaten als "Webentwickler" aktiv. - Mir fällt auf, dass der Browser Variablen nur im Kontext einer (geladenen) HTML-Datei sich merkt. Variablen/Daten wurden an den Server immer frisch über die URL übergeben. Zurückgegeben wird dann typischerweise ein beispielsweise mit Perl generiertes HTML-Dokument, dem wiederum in den Input-Feldern über die VALUE-Eigenschaft Datenwerte mitgegeben werden.
Ich habe mir da mit SQL-Datenhaltung ein "Session"-Objekt gebastelt, welches sessionabhängig Daten hält, die ansonsten (z.B. bei drei Erfassungsformularen) immer und immer wieder Rundreisen machen müssten. - Die Lösung ist dennoch möglicherweise suboptimal, wie ich finde.
Bin ich da auf dem falschen Dampfer oder geht's wirklich nicht anders? - Was machen PHP, ASP, ASP.NET u.s.w. ?
Gruss,
Lude
Hallo!
bin erst seit zwei Monaten als "Webentwickler" aktiv. - Mir fällt auf, dass der Browser Variablen nur im Kontext einer (geladenen) HTML-Datei sich merkt. Variablen/Daten wurden an den Server immer frisch über die URL übergeben. Zurückgegeben wird dann typischerweise ein beispielsweise mit Perl generiertes HTML-Dokument, dem wiederum in den Input-Feldern über die VALUE-Eigenschaft Datenwerte mitgegeben werden.
Ich habe mir da mit SQL-Datenhaltung ein "Session"-Objekt gebastelt, welches sessionabhängig Daten hält, die ansonsten (z.B. bei drei Erfassungsformularen) immer und immer wieder Rundreisen machen müssten. - Die Lösung ist dennoch möglicherweise suboptimal, wie ich finde.
Das Problem von HTTP besteht darin, das keine Echte "Session" zu Stande kommt, d.h. das Protokoll ist zustandslos, die Daten werden übertragen und die Verbindung ist zu Ende. Bei der nächsten Seite kommt es wieder zu einer neuen Verbindung...
Du hast Recht, der Browser speichert nur das was in dem HTML-Dokument steht(aber das auf alle Fälle), oder er speichert Cookies, aber die kann man abschalten.
Damit man nicht immer alle Daten hin und her schicken muss, gibt es Sessions, ich kann jetzt nur für PHP sprechen, weiß aber das ASP und PERL das genau so können. Mit den Sessions ist schon fertig in die jeweilige Sprache implementiert, d,h, du mußt nur noch die Session Starten(session_start() bei php), dann kannst Du über $_SESSION['Eine_Variable'] = "abc"; Sachen in der Session speichern, Variablen, arrays, objekte... die dann serverseitig automatisch irgendwo abgelegt werden, und nur über die aktuelle Session zugänglich sind, wieder über $_SESSION['Eine_Variable'].
Die Session wird anhand einer ID zugewiesen, und diese ID, wird wahlweise als Cookie beim Browser gespeichert, oder PHP hat die nette Eigenschaft die SessionID automatisch an alle Links anzufügen und als Input-Feld in alle Formulare automatisch einzufügen, so wird der User beim nächsten Request die SessionID mitsenden und die Daten stehen automatisch (nach session_start();) wieder wie oben beschrieben zur Verfügung. Ist eigentlich ne ganz praktische Sache da man sich nicht selbst drum kümmern muss.
Infos dazu gibts hier:
http://www.php.net/manual/de/ref.session.php
http://www.dclp-faq.de/ch/ch-version4_session.html
Viele Grüße
Andreas