Ein Cookie ([ˈkʊki]; amerikanisch „Plätzchen“, „Keks“), ist eine Textinformation, die die besuchte Website (hier „Server“) über den Browser im Rechner des Betrachters („Client“) platziert. Der Cookie wird entweder vom Webserver an den Browser gesendet oder von einem Skript (etwa JavaScript) in der Website erzeugt. Der Client sendet die Cookie-Information bei späteren, neuen Besuchen dieser Seite mit jeder Anforderung wieder an den Server.
Anwendungen
HTTP ist ein zustandsloses Protokoll, daher sind für den Webserver die Seitenaufrufe unabhängig voneinander. Eine Webanwendung, deren Interaktion mit dem Benutzer über mehrere Seitenaufrufe andauert, muss mit Tricks arbeiten, um den Teilnehmer über mehrere Zugriffe hinweg identifizieren zu können. Dazu kann in einem Cookie vom Server eine eindeutige Session-ID gespeichert, um genau diesen Client bei weiteren Aufrufen wiederzuerkennen. Aus Sicherheitsgründen wird beim Electronic Banking eher ein Einmal-Token pro Seitenaufruf eingesetzt.
Online-Shops können Cookies verwenden, um Waren in virtuellen Einkaufskörben zu sammeln. Der Kunde kann damit Artikel in den Einkaufskorb legen und sich weiter auf der Website umschauen, um danach die Artikel zusammen zu kaufen. Die Identifikation des Warenkorbs bzw. der Session des Benutzers wird im Cookie abgelegt, die Artikel-Kennungen werden auf dem Webserver diesem Warenkorb bzw. der Session des Benutzers zugeordnet. Erst bei der Bestellung werden diese Informationen serverseitig ausgewertet.
Damit bei Webanwendungen Benutzeraktionen und -eingaben, die für den Server bestimmt sind, bei Abbrüchen der Verbindung zum Server (zum Beispiel in Mobilfunknetzen) nicht verlorengehen, können Cookies zur Zwischenspeicherung eingesetzt werden. Bei Wiederherstellung der Verbindung werden sie vom Server abgefragt.
Die Webanwendung erkennt dabei die Reihenfolge, in der die Cookies erzeugt wurden, und markiert bereits verarbeitete Cookies oder löscht deren Inhalt. Weil bei dieser Verwendung unter Umständen viele Cookies erzeugt werden, die frühestens beim Schließen des Browsers gelöscht werden, der Speicherplatz des Browsers für Cookies aber beschränkt ist, muss die Webanwendung Vorkehrungen gegen einen Cookie-Überlauf treffen.
Funktionsweise
Es gibt zwei Möglichkeiten für die Übertragung, Zuweisung und Auswertung von Cookies durch eine Website:
- Übertragung in den Kopfzeilen (Header) von Anfragen und -Antworten via HTTP. Cookies im Client entstehen, wenn bei seinem Zugriff auf einen Webserver neben anderen HTTP-Kopfzeilen in der Antwort des Servers zusätzlich eine Cookie-Zeile übertragen wird (siehe Aufbau).
- Außerdem kann ein Cookie lokal durch JavaScript oder weitere Skriptsprachen erzeugt werden. Das Skript befindet sich in der vom Server übermittelten Webseite.
Die lokalen Cookies derselben Domain – also nicht anderer Sites – können ausgelesen, verwertet und geändert werden. Damit können beispielsweise durch Javascript Informationen über die lokalen Benutzeraktivitäten eingearbeitet werden, die in der Sitzung ohne weiteren Serverkontakt angefallen waren. Mit dem nächsten Kontakt zur Website werden sie in den HTTP-Kopfzeilen auch dorthin übertragen.
Cookie-Informationen werden lokal im Browser gespeichert, üblicherweise in einer Cookie-Textdatei. Bei nachfolgenden weiteren Zugriffen auf den Webserver sucht der Client-Browser alle Cookies dieser Domain heraus, die zum Webserver und dem Verzeichnispfad des aktuellen Aufrufs passen. Diese Cookie-Daten werden im Header des HTTP-Zugriffs mit übertragen, sodass die Cookies nur an jenen Webserver zurückgehen dürfen, von dem sie einst auch stammten.
Ein Cookie kann beliebigen Text enthalten, kann also neben einer reinen Identifikation auch beliebige Einstellungen lokal speichern, jedoch sollte seine Länge 4 Kilobyte (4·1024 Byte) nicht überschreiten, um mit allen Browsern kompatibel zu bleiben. Die Cookies werden mit jeder übermittelten Datei übertragen, also auch mit Bilddateien oder jedem anderen Dateityp; dies gilt insbesondere für eingebettete Elemente wie Werbebanner, die von anderen Servern eingebunden werden als dem Ursprung einer angezeigten HTML-Datei. So kann eine einzelne Webseite zu mehreren Cookies führen, die von verschiedenen Servern kommen und an diese jeweils wieder zurückgeschickt werden.
Cookies werden ausschließlich vom Client verwaltet. Somit entscheidet der Client, ob beispielsweise ein Cookie gespeichert oder nach der vom Webserver gewünschten Lebensdauer wieder gelöscht wird. Allerdings können auch auf dem Server entsprechende Informationen gespeichert werden, um beispielsweise Statistiken über die Zahl der Aufrufe von Webseiten zu erzeugen.
Gängige Browser erlauben dem Nutzer, den Umgang mit Cookies mehr oder weniger festzulegen, z. B.:
- Keine Cookies annehmen.
- Nur Cookies des Servers der aufgerufenen Seite annehmen (keine Cookies von Drittservern wie bei Werbebannern).
- Benutzer bei jedem Cookie fragen.
Hier kann dann meist zwischen „erlauben“ (bleibt), „für diese Sitzung erlauben“ (wird immer angenommen, aber nach dem Schließen des Browsers gelöscht) und „ablehnen“ (nicht akzeptieren) gewählt werden, wobei die gewählte Option gespeichert wird.
- Alle Cookies beim Schließen des Browsers löschen („Sitzungs-Cookie“).
Dazu erlauben die Browser verwaltende Aktionen wie:
- Daten im Cookie ansehen.
- Einzelne oder alle Cookies löschen.
Schließlich kann der Benutzer die Inhalte von Cookies verändern, leeren oder löschen.
Ob ein Cookie angenommen oder abgelehnt wurde, kann die Server-Anwendung in weiteren HTTP-Anfragen erkennen, da die Speicherung von Cookies vom Client nicht zurückgemeldet wird.
Gefahren
Tracking
Die Möglichkeit der eindeutigen Erkennung kann missbraucht werden. Cookies werden unter anderem dafür verwendet, Benutzerprofile über das Surfverhalten eines Benutzers zu erstellen. Ein Online-Shop kann diese Daten mit dem Namen des Kunden verknüpfen und zielgruppenorientierte Werbemails schicken. Jedoch kann der Online-Shop nur das Surfverhalten innerhalb seiner eigenen Webseite verfolgen.
Server, die nicht identisch mit dem Server der aufgerufenen Webpage sind, können etwa mit Bilddateien (Werbebanner oder auch Zählpixel) auch sogenannte Third-Party-Cookies (englisch für Cookies von Dritten) setzen; diese werden auch als „tracking cookies“ bezeichnet (englisch für Verfolgen). Gegebenenfalls kann so der Besuch unterschiedlicher Websites einem Benutzer zugeordnet werden. Es entsteht eine „serverübergreifende“ Sitzung. Daraus kann auf die Interessen des Besuchers geschlossen und Websites entsprechend angepasst („personalisiert“) werden. Bei einer Bestellung in einem Webshop etwa werden die angefallenen Daten einer konkreten Person zugeordnet.
Siehe auch: Abschnitt „Cookies“ zur Anonymität im Internet
Gefahr bei öffentlichen Internetzugängen
In Umgebungen, in denen sich mehrere Nutzer denselben Rechner teilen, etwa in Schulen oder Internet-Cafés, besteht die Gefahr, dass ein noch gültiger Sitzungs-Cookie vom nächsten Nutzer des Rechners verwendet wird, um die Sitzung seines Vorgängers fortzusetzen. Das kann verhindert werden, indem man grundsätzlich alle Cookies vor dem Beenden des Browsers löscht oder eine entsprechende Browser-Einstellung nutzt.
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 etwa die Erstellung von Benutzerprofilen erschwert, und Sitzungs-Cookies automatisch zugelassen werden, beispielsweise für Webeinkäufe, Passwörter.
Außerdem bieten die meisten Browser die Möglichkeit, Cookies selektiv für bestimmte Domains zu erlauben bzw. zu sperren oder nach dem Surfen automatisch zu löschen, wie es automatisch bei Sitzungs-Cookies geschieht. Serverfremde Cookies lassen sich automatisch abweisen, über die ein Dritter, etwa ein Werbepartner der Internet-Seite, das eigene Verhalten über mehrere Server hinweg aufzeichnen könnte.
Browser bieten oft die Möglichkeit, Funktionen über kleine Zusatzprogramme (Add-ons) nachzurüsten. So ist es etwa bei Firefox mit einem bestimmten Add-On möglich, per Klick auf eine Schaltfläche Webseiten zu erlauben, Cookies zu speichern bzw. sogar selbst den Inhalt der Cookies zu manipulieren. Damit lassen sich Cookies generell deaktivieren sowie ausnahmsweise erlauben, falls die Website ohne Cookies nicht richtig funktioniert oder man sich bei einem Onlinedienst anmelden möchte.
Quelle: Wikipedia (http://de.wikipedia.org/wiki/HTTP-Cookie)