Das HTTP-Protokoll ist zustandlos, so dass damit allein kein Zustand wie an- oder abgemeldet abgebildet werden kann. Diese Funktionalität muss dafür also mit Software quasi mit einem darüberliegenden Protokoll realisiert werden.

Um gewisse Ressourcen nur angemeldeten Benutzern zur Verfügung zu stellen, also um eine einfache Authentifizierung auf einer Webseite zu realisieren, werden bis heute sogenannte Session-IDs (Session Identifier = dt. Sitzungsnummer oder -kennung) verwendet.

Ablauf

  1. Mit der Authentifizierung durch die Übertragung von Benutzername und Kennwort durch ein HTML-Formular wird vom Server (zu Beginn einer Sitzung) eine eindeutige Session-ID erzeugt und dort gespeichert (ev. zusammen mit anderen Daten, z.B. Warenkorb oder Autorisierung).
  2. Die Session-ID muss mit der Antwort (response) des Servers zum Client übertragen werden und von diesem gespeichert werden.
  3. Bei jeder weiteren Anfrage (request) beim Server muss die SessionID mitgeliefert werden.
  4. Der Server überprüft die empfangene SessionID und antwortet bei deren Gültigkeit mit der Auslieferung der angeforderten Daten oder eben mit einer Ablehnung. 
  5. Durch Abmeldung wird die aktuelle Session-ID auf dem Server gelöscht und verliert so ihre Gültigkeit.
    Sie kann aber auch nach einer gewissen Zeit automatisch gelöscht werden. (Dann ist eine dauerhafte Verlinkung dieser Inhalte nicht möglich.)

Die Session-ID ist also hier noch ein einfaches Software-Token, dass keinerlei Information z.B. verschlüsselt in sich trägt, sondern dass temporär mit weiteren Informationen auf dem Server z.B. in einer Datenbank assoziiert ist.


Übertragung der Session-ID

Vom Server zum Client

kann die Session-ID auf zweierlei Arten übertragen werden:

  • Die Session-ID wird vom Webserver einmalig im HTTP-Header zu Beginn der Session oft als sogenanntes Cookie übertragen. Dieses Cookie wird vom Browser auf dem Host gespeichert und automatisch bei jeder neuen Anfrage wieder mit übertragen.
    Oder:
  • Die Session-ID wird bei jeder Antwort erneut übertragen, so dass sie dem Browser für die nächste Anfrage zur Verfügung steht.

Vom Client zum Server

  • Wie bereits gesagt, hat der Browser ein Cookie mit der Session-ID gespeichert, dass mit jeder Anfrage auf die gleiche Webadresse automatisch im HTTP-Header mit zum Server übertragen wird. (Anmerkung: Das Cookie bleibt nach Schließen des Browsers erhalten.)

  • Die Session-ID kann in der URI übertragen werden. Hier zwei Beispiele

    https://www.example.com/index?sid=edb0e8665db4e9042fe0176a89aade16
    https://www.example.com/edb0e8665db4e9042fe0176a89aade16/index
  • Die Session-ID kann auch beim Absenden eines HTML-Formulars mit der Methode POST übertragen werden. Dazu wird sie in einem versteckten Formularfeld (input-Elemente des Typs „hidden“) gespeichert.


Quelle: https://de.wikipedia.org/wiki/Sitzungsbezeichner   (10.11.2021)

Last modified: Thursday, 10 November 2022, 12:32 PM