DruckenMister WongFacebook

Sessions und Cookies in ASP.NET

von Martin Strohal

Was sind Cookies?

Wörtlich übersetzt sind Cookies Kekse. Mit einem Gebäck hat diese Technik allerdings nicht viel zu tun. Bei Cookies handelt es sich um kleine Textdateien, die von einem Browser geschrieben und gelesen werden. Eine Webseite kann den Browser anweisen, eine bestimmte Information auf dem Client-PC abzulegen. Dabei wird das Cookie eindeutig einer Website zugeordnet. Nur innerhalb derselben Domain kann das Cookie wieder ausgelesen werden. Eine andere Website hat keinen Zugriff darauf.
Zu beachten ist, dass Cookies nur eine Größe von 4 KB annehmen können. Sie sind also wirklich nur für kleine Daten geeignet, nicht für große Informationsfluten.

Technisch funktioniert das Setzen und Auslesen von Cookies folgendermaßen: Die Kommunikation zwischen Webserver und Client erfolgt über das Protokoll HTTP (Hypertext Transfer Protocol). Will eine Webseite ein Cookie setzen, so setzt sie eine entsprechende Information in den HTTP-Header. Diese enthält neben den zu speichernden Daten auch Domainnamen und Pfad sowie ein Gültigkeitsdatum. Über Domainnamen und Pfad erkennt der Browser, wann er den Inhalt des Cookies wieder an den Server senden soll, nämlich genau dann, wenn eine dazu passende Webseite abgerufen werden sollen. Der Webserver fordert den Inhalt des Cookies also nicht an, sondern bekommt ihn immer automatisch in der HTTP-Anfrage (Request) zur Verfügung gestellt. Über das Gültigkeitsdatum kann festgelegt werden, wie lange das Cookie existieren soll. Ist keins angegeben, wird das Cookie gelöscht, sobald der Browser beendet wird. Andernfalls kann das Cookie mehrere Jahre auf der Festplatte des Clients verbringen.

Übliche Einsatzzwecke

Für Cookies gibt es mehrere Einsatzzwecke. Hier zwei Beispiele:

  1. Eine Website will einen Besucher mit Namen begrüßen. Dazu fordert sie einmalig zur Eingabe des Namens auf, speichert diesen dann in einem Cookie und hat ab sofort immer Zugriff darauf. Kommt der Nutzer das nächste Mal wieder, wird das Cookie automatisch an den Server geschickt, der den Namen anzeigen kann.
  2. HTTP ist ein zustandsloses Protokoll (dazu mehr im Abschnitt über Sessions). Der Server erkennt also nicht, dass eine zweite Anfrage von einem Besucher kommt, der bereits eine andere Seite der Website abgerufen hat. Oft ist es aber notwendig, den Besucher identifizieren zu können, z.B. in Online-Shops. Dazu kann z.B. eine ID im Cookie gespeichert werden, über das der Webserver den virtuellen Einkaufskorb zuordnen kann.