Eine Sitzung (englisch session) bezeichnet in der EDV eine stehende Verbindung eines Clients mit einem Server (siehe auch Client-Server-System). Den Anfang einer Sitzung bezeichnet man als Login, das Ende als Logout.
Internet
Im World Wide Web gibt es bei zustandslosen Protokollen (z. B. HTTP) keine stehenden Verbindungen zwischen Client und Server. Es gibt zudem keine Daten (IP-Adresse, Kennung des Clients), mit denen ein Besucher eindeutig identifiziert werden könnte. Deshalb kann eine Sitzung erst auf der Anwendungsschicht implementiert werden.
Wenn ein Client bei jedem Zugriff auf einen Webserver eine eindeutige Session-ID überträgt, können (ansonsten unzusammenhängende) Zugriffe zu einer (zusammenhängenden) Sitzung (englisch Session) zusammengefasst werden.
Durch eine Sitzung können Sitzungsdaten einem Benutzer zugeordnet werden. Sitzungsdaten werden serverseitig gespeichert und werden oft für komplexere Transaktionen benötigt. Ein Beispiel für Sitzungsdaten ist der Inhalt eines virtuellen Einkaufskorbes bei dem Besuch eines E-Shops. Minimale Sitzungsdaten bestehen nur aus der Session-ID.
Eine Sitzung kann für jeden Besucher begonnen werden, der nicht einer bestehenden Sitzung zugeordnet werden kann. Eine solche anonyme Sitzung beginnt auch ohne explizites Login, um beispielsweise die Bewegungen des Besuchers einer Website zu verfolgen. In einem Webshop kann bereits der anonyme Besucher den Warenkorb benutzen. Erst bei einer Bestellung wird die Sitzung personalisiert, also z. B. mit Namen und Adresse des Besuchers verknüpft.
Je nach Übertragungsweg der Session-ID oder auch dem Zweck der Sitzung, kann diese auch ohne explizites Logout beendet werden. Eine Sitzung wird dann serverseitig nach einer Zeitüberschreitung beendet, wobei die Sitzungsdaten entweder gelöscht oder entsprechend markiert werden.
Für längere Sitzungen (über Tage oder Wochen) werden bevorzugt HTTP-Cookies genutzt, weil diese die Session-ID clientseitig speichern.
Werden die HTTP-Anfragen des Benutzers zur Serverlastverteilung auf verschiedene Server verteilt, muss der jeweils zugeteilte Server die Sitzung fortsetzen können. Dies kann durch Speichern in Cookies geschehen, aber auch durch feste Zuweisung eines der Server an die Sitzung. Letzteres wird als Affinität von Server und Sitzung (engl. session affinity oder server affinity) bezeichnet.
Sicherheit
Mögliche Angriffsmethoden auf eine Sitzung werden unter Session Hijacking und Session Fixation beschrieben.
Siehe auch
Einzelnachweise
- ↑ 6.3: Möglichkeiten, den Sitzungszustand zu speichern – Auszug aus Patterns für Enterprise Application-Architekturen (Seite 103) bei Google Books (Abgerufen am: 25. Juni 2012)