rolfrost: Session-Cookie

hi,

was ist eigentlich ein Session-Cookie?

Ist das lediglich ein Cookie mit expired  = '' oder ist das mehr?

Viele Grüße, Rolf

  1. 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

    --
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. 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

      1. 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

        --
        X-Will-Answer-Email: No
        X-Please-Search-Archive-First: Absolutely Yes
        1. 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

          1. 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

            --
            X-Will-Answer-Email: No
            X-Please-Search-Archive-First: Absolutely Yes
          2. 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

            1. 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

              1. Hallo!

                Die Idee ist gut!

                Die Idee ist nicht von mir ;-)

                Grüße
                Andreas

                1. 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

    2. 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