studyklar
IProg · Skript 6 · Abschnitt 1

Zustand bei HTTP: Warum der Server vergisst

Ein Webserver vergisst nach jeder Antwort, wer ihn gefragt hat. Hier steht, warum das so ist, wofür man trotzdem ein Gedächtnis braucht und welche drei Lösungsansätze es gibt. Rechts siehst du Browser und Server mit ihren Nachrichten. Mit Weiter geht es Schritt für Schritt voran.

Worum es geht

Skript 06, Folien 2–5: Zustandsinformation bei HTTP und Lösungsansätze.

Du meldest dich in einem Online-Shop an und klickst danach auf „Warenkorb“. Woher weiß der Server beim zweiten Klick, dass du es bist? Genau diese Frage beantwortet der Abschnitt.

So gehen wir vor:

  1. Was „HTTP ist zustandslos“ heißt.
  2. Wofür man trotzdem Sitzungen braucht.
  3. Drei Lösungsansätze: Parameter, Cookies, Session-ID.
  4. Warum die Session-ID geschützt werden muss.
  5. Eine Klausurfrage dazu.

HTTP ist zustandslos

Skript · Zustandsinformation bei HTTP
  • HTTP ist zustandsloses Protokoll.
  • Mit Senden der Antwort an Client ist die Aufgabe des Webservers erfüllt.

HTTP (Hypertext Transfer Protocol) ist die Sprache, in der Browser und Webserver reden. Der Browser schickt eine Anfrage, der Server schickt eine Antwort. Danach ist für den Server alles erledigt.

Zustand heißt hier: was der Server über einen Besucher weiß, etwa „anna ist angemeldet“. Zustandslos heißt: Der Server merkt sich nichts davon. Jede Anfrage ist für ihn die erste.

Rechts meldet sich anna mit Anfrage 1 an. Bei Anfrage 2 weiß der Server nicht mehr, wer fragt.

Aus Skript 01, Folien 29–30: Eine HTTP-Transaktion: Der Client fordert ein Dokument an (etwa GET /index.html), der Server antwortet mit Statuscode, Header-Informationen und dem Dokument.

Wofür man Sitzungen braucht

Skript · In der Praxis werden oft Sitzungen benötigt
  • Vermeidung ständiger Neueingabe von Kennworten
  • Personalisierte Seiten
  • Merken von Daten, die über mehrere Seiten verteilt erfasst wurden – aber gemeinsam gespeichert werden sollen
  • Warenkorb
  • Anlegen/Bearbeiten von Daten

Eine Sitzung (englisch Session) ist die Zeit, in der ein Besucher mehrere Seiten nacheinander aufruft. In der Praxis soll sich die Seite in dieser Zeit an ihn erinnern.

Das Skript nennt vier Fälle. Allen gemeinsam: Daten aus einer Anfrage werden in einer späteren Anfrage gebraucht. Der Warenkorb ist das Paradebeispiel: Artikel kommen auf vielen Seiten dazu, bestellt wird am Ende alles zusammen.

Merke: Mit einer Sitzung muss man sich einmal anmelden, nicht bei jeder Seite neu.
Noch 7 Schritte bis zum Ergebnis
Den ganzen Lösungsweg sehen Studierende und Lehrende der HS KL. Registriere dich mit deiner Adresse @stud.hs-kl.de oder @hs-kl.de, dann geht es hier direkt weiter.

Abbildung 1

Browsermerkt sich: nichts
Webservermerkt sich: nichts: nach jeder Antwort ist alles vergessen
Anfrage vom Browser: Anfrage 1: Anmelden als anna
Antwort vom Server: Antwort 1: Willkommen, anna
Anfrage vom Browser: Anfrage 2: Warenkorb zeigen
Antwort vom Server: Antwort 2: Wer bist du?
Legendegerade gemeintBrowser und Webserver tauschen Anfragen und Antworten aus.