HTTP-Cookie
Ein HTTP-Cookie, auch Browser-Cookie genannt ([Webserver zu einem Browser sendet, die dann der Browser wiederum bei späteren Zugriffen auf denselben Webserver zurücksendet. Mit Cookies ist das zustandslose Hypertext Transfer Protocol um die Möglichkeit erweitert, Information zwischen Aufrufen zu speichern. Dadurch erleichtern Cookies die Benutzung von Webseiten, die häufig oder wiederholt Benutzereingaben erfordern.
]; engl., „Plätzchen“, „Keks“), bezeichnet Informationen, die einFunktionsweise
Cookies werden in den Header-Teilen von HTTP-Anfragen und -Antworten übertragen.
Man kann zwischen persistenten Cookies und Session-Cookies unterscheiden. Erstere werden über einen festgelegten Zeitraum auf der Festplatte gespeichert (beispielsweise zwei Tage oder drei Monate), während letztere nur für die Länge einer Sitzung gespeichert werden.
Wenn der Webserver einer Website Cookies zu einem Browser sendet (HTTP-Antwort), werden sie lokal auf dem Endgerät gespeichert, auf Computern üblicherweise in einer Textdatei. Dort sucht der Browser bei jedem Aufruf einer Webseite nach Cookies, die von der selben Website stammen, und fügt diese Cookies dem Aufruf (HTTP-Anfrage) hinzu. Damit ist eine beständige Verbindung zwischen Browser und Server gewährleistet, der Server „erkennt den Browser wieder”. Ein Cookie kann beliebigen Text enthalten, seine Länge sollte jedoch 4 KiB nicht überschreiten, um mit allen Browsern kompatibel zu bleiben. Mit jeder übermittelten Datei, also z. B. auch mit Bilddateien, kann ein Server nur einen Cookie versenden, mit einer Anfrage des Browsers können gleichzeitig mehrere Cookies versandt werden. Dieses Konzept wurde ursprünglich von Netscape entwickelt und in RFC 2109 spezifiziert.
Die Lebensdauer des Cookies kann vom Webserver beschränkt worden sein. Nach deren Ablauf löscht der Browser das Cookie. Bei einigen Browsern, wie zum Beispiel Mozilla, kann der Benutzer die Lebenszeit selbst ändern.
Verwendung
Eine typische Anwendung von Cookies ist das Speichern persönlicher Einstellungen auf Websites, zum Beispiel in Foren. Damit ist es möglich, diese Website zu besuchen, ohne jedes Mal die Einstellungen erneut vornehmen zu müssen. Auch Online-Shops verwenden Cookies, um virtuelle Einkaufskörbe zu ermöglichen. Der Kunde kann damit Artikel in den Einkaufskorb legen und sich weiter auf der Website umschauen, um danach die Artikel zusammen online zu kaufen.
Cookies dienen auch der Sicherheit. Da man sich bei manchen Websites wie Wikipedia per Passwort einloggen kann, werden Cookies gesetzt, um genau diesen Nutzer eindeutig zu erkennen und damit nicht bei jedem Aufruf einer Unterseite das Passwort erneut eingegeben werden muss. Häufig werden Logininformationen über eine Session-ID (Zahlenfolge), die nur für eine Session gültig ist – in den Cookies gespeichert. Das ist sicherer und weniger aufwendig, als diese Informationen jeder URI hinzuzufügen und damit Unbefugten den Zugriff auf geschützte Inhalte zu erleichtern.
Gefahren
Die eindeutige Erkennung kann allerdings auch zu missbräuchlichen Zwecken ausgenutzt werden. Cookies werden dabei z.B. dafür verwendet, Benutzerprofile über das Surfverhalten zu erstellen. Ein Online-Shop kann z. B. diese Daten mit dem Namen des Kunden verknüpfen, wenn man Kunde bei ihm ist, und zielgruppenorientierte Werbemails schicken. Ein Cookie kann jedoch nur Informationen enthalten, die der Website-Anbieter selbst an den Benutzer sendet – private Daten des Benutzers lassen sich damit nicht auslesen.
Marketingfirmen, die bei vielen Websites Werbebanner haben, können mit so genannten „serverfremden“ Cookies sogar über einzelne Websites hinweg den Benutzer verfolgen.
Erlauben oder Sperren?
Ein Kompromiss zwischen den Vor- und Nachteilen von Cookies kann erzielt werden, indem man seinen Browser so konfiguriert, dass persistente Cookies nicht oder nur gegen Rückfrage zugelassen werden, was z. B. die Erstellung von Benutzerprofilen erschwert, und Session-Cookies automatisch zugelassen werden, z. B. für Webeinkäufe, Passwörter. Außerdem bieten die meisten Browser die Möglichkeit, Cookies selektiv für bestimmte Domänen zu erlauben bzw. zu sperren oder nach dem Surfen automatisch zu löschen, wie es automatisch bei Session-Cookies geschieht. Auch ist es möglich, serverfremde Cookies automatisch abzuweisen, über die ein Dritter, etwa ein Werbepartner der Internet-Seite, das eigene Verhalten über mehrere Server hinweg aufzeichnen könnte.
Aufbau
Ein Cookie besteht aus einem Namen und einem Wert sowie mehreren benötigten oder optionalen Attributen mit oder ohne Wert. Einige Attribute sowie deren Einschließen in Hochkommas werden empfohlen.
<name>
- Beliebiger Name und Wert aus ASCII-Zeichen die vom Server übergeben werden
Version
- Gibt die Cookie-Management-Spezifikation in einer Dezimalzahl an.
Expires
- Ablaufdatum, Zeitpunkt der automatischen Löschung in GMT für HTTP/1.0
Max-age
- Ablaufzeit in Sekunden - 0 für Löschung - bei HTTP/1.1
Domain
- Domain oder Bestandteil des Domainnamens, für den der Cookie gilt
Path
- Gültigkeits-Pfad (Teil der Anfrage-URI), um die Gültigkeit des Cookies auf einen bestimmten Pfad zu beschränken
Port
- Beschränkung des Ports auf den aktuell verwendeten oder auf eine Liste von Ports
Comment
- Kommentar zur näheren Beschreibung des Cookies
CommentURL
- URL unter welcher eine Beschreibung zur Funktionsweise zu finden ist
Secure
- Rücksendung des Cookie über eine mindestens ebenso sichere Verbindung - ohne zugehörigen Wert.
Discard
- Unbedingt Löschung des Cookies bei Beendigung des User-Agents
Funktionsweise - ein Beispiel
Cookies werden durch den Webserver im HTTP-Header mit der Angabe Set-Cookie:
bearbeitet. Der Cookie fängt mit dem Namen und den zu speichernden Daten an und kann danach mehrere Angaben zur Verwendung beinhalten:
Set-Cookie: letzteSuche="cookie aufbau"; expires=Tue, 29-Mar-2005 19:30:42 GMT; Max-Age=2592000; Path=/cgi/suche.py; Version="1";
Mit dieser Headerzeile sendet der Webserver einen Cookie mit dem Namen letzteSuche
und dem Wert cookie aufbau
an den Browser. Der Cookie soll am 29. März 2005 oder in 30 Tagen (2592000 = 30*24*60*60 Sekunden) gelöscht werden. Der Browser sollte ihn nur mit Anfragen zurückschicken, deren Pfad mit /cgi/suche.py
anfängt und an diesem Server gerichtet sind.
Der Client schickt Cookies durch die Angabe von Cookie:
, dem Namen und Wert sowie mit den jeweiligen Attributen mit vorangestelltem "$":
Cookie: letzteSuche="cookie aufbau"; $Path=/cgi/suche.py; $Version="1";
Browseranforderungen
Nach RFC 2965 soll ein Browser Folgendes unterstützen:
- Es sollen insgesamt mindestens 300 Cookies gespeichert werden können.
- Es sollen pro Domain mindestens 20 Cookies gespeichert werden können.
- Ein Cookie soll mindestens 4096 Bytes enthalten können.
Manche Browser können mehr Cookies und/oder auch Cookies mit längeren Zeichenketteninhalten verarbeiten, garantiert ist dies aber nicht. Andersherum halten sich auch nicht alle Browser an alle Anforderungen, als Webdesigner sollte man sich also auch bei Unterschreitung der Anforderungen nicht auf der sicheren Seite wähnen.
Siehe auch
- Cookie
- HTTP
- Logfile-Analyse
- RFC 2965 HTTP State Management Mechanism – Festlegung des Cookiesstandards
- RFC 2109 HTTP State Management Mechanism – Veralteter Cookiestandard
Weblinks
- www.cookiecentral.com - umfangreiche Seite über Cookies (englisch)
- www.web-analytics.org - Einsatz von Cookies im Marketing.