Session-Cookie
rolfrost
- programmiertechnik
0 Cheatah
hi,
was ist eigentlich ein Session-Cookie?
Ist das lediglich ein Cookie mit expired = '' oder ist das mehr?
Viele Grüße, Rolf
Hi,
was ist eigentlich ein Session-Cookie?
ein clientseitiger Cookie, welcher auf Serverseite mit einer dort hinterlegten Session identifiziert wird.
Ist das lediglich ein Cookie mit expired = '' oder ist das mehr?
Auf Clientseite ist es genau das. Auf Serverseite hängt noch ein umfangreiches Konzept mit allen möglichen Komplikationen dahinter. Dass Cookies keine verlässliche Form der Datenhaltung sind, möchte ich der Form halber nicht unerwähnt lassen.
Cheatah
Hi Cheatah,
vielen Dank!
was ist eigentlich ein Session-Cookie?
ein clientseitiger Cookie, welcher auf Serverseite mit einer dort hinterlegten Session identifiziert wird.
Ist das lediglich ein Cookie mit expired = '' oder ist das mehr?
Auf Clientseite ist es genau das. Auf Serverseite hängt noch ein umfangreiches Konzept mit allen möglichen Komplikationen dahinter. Dass Cookies keine verlässliche Form der Datenhaltung sind, möchte ich der Form halber nicht unerwähnt lassen.
So isses. Genau dieses Konzept interessiert mich... wo finde ich da weitere Informationen, wäre nicht schlecht wenn Du nochmal helfen könntest.
Rolf
Hi,
So isses. Genau dieses Konzept interessiert mich... wo finde ich da weitere Informationen,
bei der Technik, die serverseitig eingesetzt wird. Es gibt beliebig viele solcher Konzepte, die jeweils vom Umfeld abhängig sind.
Cheatah
Mahlzeit Hajo ;-)
So isses. Genau dieses Konzept interessiert mich... wo finde ich da weitere Informationen,
bei der Technik, die serverseitig eingesetzt wird. Es gibt beliebig viele solcher Konzepte, die jeweils vom Umfeld abhängig sind.
Nunja, ich will ja sowas mal selber bauen und hab mir gedacht, dass ich einen cookie setze mit einem absolut eindeutigen key. Gleichzeitig lege ich diesen key serverseitig in einer tmpDB ab.
Damit stelle ich sicher, dass nur derjenige der diesen key hat *was machen darf* in dieser session (cookie ist da, key wird ausgelesen und mit dem Eintrag in der DB verglichen....).
Das eigentliche Problem: Wann *weiß* der Prozess auf dem Server dass der Client seinen Browser geschlossen hat (cookie expired)?
Hast Du sowas schonmal programmiert?
Viele Grüße, Rolf
Hi,
Nunja, ich will ja sowas mal selber bauen und hab mir gedacht, dass ich einen cookie setze mit einem absolut eindeutigen key. Gleichzeitig lege ich diesen key serverseitig in einer tmpDB ab.
ja, das ist die grobe Grundlage.
Das eigentliche Problem: Wann *weiß* der Prozess auf dem Server dass der Client seinen Browser geschlossen hat (cookie expired)?
Nie. Der Server hat keine Ahnung davon, was auf dem Client passiert. Er ist davon abhängig, dass der Client den Cookie (bzw. die Session-ID) nur dann schickt, wenn dieser das darf.
Hast Du sowas schonmal programmiert?
Nein, bisher hatte ich noch nicht das Vergnügen :-)
Cheatah
Hallo!
Nunja, ich will ja sowas mal selber bauen
Es gibt aber so ziemlich für jede Umgebung fertige Session-Implementierungen(in PHP ist es fest mit eingebaut, für PERL, Java... gibt es entsprechende Module), oder geht es Dir um den "Lerneffekt"?
und hab mir gedacht, dass ich einen cookie setze mit einem absolut eindeutigen key.
bedenke dass nicht jeder Client Cookies abzeptiert.
Das eigentliche Problem: Wann *weiß* der Prozess auf dem Server dass der Client seinen Browser geschlossen hat (cookie expired)?
Tja, dazu musst Du einen Timeout definieren, und irgendeine Art von "Garbage Collector" implementieren, der halt hin und wieder in Deiner DB aufräumt. Du musst in der Session immer den timestamp des letzten Request mitspeichern, anhand dessen kann man dann regelmäßig alte Sessions löschen. Dazu würde ich noch bei jedem Request eine Session auf Timeout prüfen, so dass niemand nach z.B. 30 Minuten mehr an die Daten kommt. Dann muss er halt eine neue Session starten.
Grüße
Andreas
Hallo,
Danke an alle die hier involviert sind!
hi Andreas,
Nunja, ich will ja sowas mal selber bauen
Es gibt aber so ziemlich für jede Umgebung fertige Session-Implementierungen(in PHP ist es fest mit eingebaut, für PERL, Java... gibt es entsprechende Module), oder geht es Dir um den "Lerneffekt"?
Jow, Immer ;-)
Tja, dazu musst Du einen Timeout definieren, und irgendeine Art von "Garbage Collector" implementieren, der halt hin und wieder in Deiner DB aufräumt. Du musst in der Session immer den timestamp des letzten Request mitspeichern, anhand dessen kann man dann regelmäßig alte Sessions löschen. Dazu würde ich noch bei jedem Request eine Session auf Timeout prüfen, so dass niemand nach z.B. 30 Minuten mehr an die Daten kommt. Dann muss er halt eine neue Session starten.
Die Idee ist gut!
Viele Grüße, Rolf
Hallo!
Die Idee ist gut!
Die Idee ist nicht von mir ;-)
Grüße
Andreas
Hallo!
Die Idee ist gut!
Die Idee ist nicht von mir ;-)
ist doch egal ;-)
Aber die Idee mit dem Modul ist von Dir!
Hier ist was brauchbares
http://theoryx5.uwinnipeg.ca/CPAN/data/CGI-kSession/kSession.html
Viele Grüße, Rolf
hi,
was ist eigentlich ein Session-Cookie?
Ist das lediglich ein Cookie mit expired = '' oder ist das mehr?
Auf Clientseite ist es genau das. Auf Serverseite hängt noch ein umfangreiches Konzept mit allen möglichen Komplikationen dahinter. Dass Cookies keine verlässliche Form der Datenhaltung sind, möchte ich der Form halber nicht unerwähnt lassen.
cookies ohne angabe eines ablaufdatums, die daher auf client seite nach dem ablauf der "surf-sitzung" (schliessen des browser(fenster)s) gelöscht werden, bezeichnet man idR auch als session cookies - unabhängig davon, ob jetzt auf dem server eine session geführt wird oder nicht.
gruss,
wahsaga