Sobes.tech
Middle

Wie funktioniert der Sitzungsmechanismus in Webanwendungen?

sobes.tech KI

Antwort von AI

Der Sitzungsmechanismus in Webanwendungen basiert auf der Identifikation des Benutzers zwischen Anfragen, die von Natur aus zustandslos sind (stateless).

Der Prozess sieht in der Regel folgendermaßen aus:

  1. Erste Anfrage des Benutzers: Der Client (Browser) sendet eine Anfrage an den Server.
  2. Sitzungserstellung: Der Server empfängt die Anfrage und erstellt, falls es die erste Anfrage dieses Clients ist oder die Sitzung noch nicht existiert, eine eindeutige Sitzungs-ID (Session ID).
  3. Speicherung der Sitzungsdaten: Der Server speichert die mit dieser Session ID verbundenen Daten. Diese können Benutzerdaten (Login, Rolle), Warenkorbinformationen, Einstellungen usw. umfassen. Die Speicherung kann auf dem Server selbst (im Speicher, in Dateien) oder in einem separaten Speicher (Datenbank, Redis) erfolgen.
  4. Übertragung der Session ID an den Client: Der Server sendet eine Antwort an den Client, die die Session ID enthält. Die gängigsten Übertragungsmethoden sind:
    • Cookie: Der Server setzt ein Cookie mit der Session ID im Browser des Benutzers. Der Browser sendet dieses Cookie automatisch bei jeder nachfolgenden Anfrage an dieselbe Domain.
    • URL: Die Session ID wird in den URL-Parametern eingebunden (weniger sicher und empfohlen).
    • Versteckte Formularfelder: Die Session ID wird in einem versteckten Feld <input type="hidden"> im HTML-Formular platziert (bei Formularübermittlungen verwendet).
  5. Folgeanfragen: Wenn der Client die nächste Anfrage sendet, enthält diese die Session ID (z.B. aus dem Cookie).
  6. Benutzeridentifikation: Der Server erhält die Anfrage, extrahiert die Session ID und verwendet sie, um die entsprechenden Sitzungsdaten zu suchen. So "erkennt" der Server den Benutzer und seinen vorherigen Zustand.
  7. Aktualisierung der Sitzungsdaten: Während der Interaktion des Benutzers mit der Anwendung kann der Server Daten im Sitzungs-Storage ändern oder hinzufügen, die mit der aktuellen Session ID verbunden sind.
  8. Beendigung der Sitzung: Die Sitzung kann explizit beendet werden (z.B. beim Logout) oder automatisch nach einer bestimmten Inaktivitätszeit (Session-Timeout). Bei Beendigung werden die mit der Session ID verbundenen Daten vom Server gelöscht.

Hauptkomponenten:

  • Session ID: Eindeutiger Sitzungsbezeichner.
  • Server-Sitzungs-Storage: Ort, an dem die mit der Session ID verbundenen Daten gespeichert werden.
  • Mechanismus zur Übertragung der Session ID an den Client: In der Regel Cookie.

Dieser Mechanismus ermöglicht es Webanwendungen, den Interaktionskontext mit jedem Benutzer während seiner Sitzung aufrechtzuerhalten, trotz der zustandslosen Natur des HTTP-Protokolls.