Auch genannt: Web-Cookie, Browser-Cookie
Ein Cookie ist ein kleines Datenstück, das ein Webserver an einen Browser sendet. Der Browser kann es speichern und bei späteren Anfragen an denselben Server wieder mitsenden. So kann eine Website einen Zustand wiedererkennen, obwohl einzelne HTTP-Anfragen für sich genommen keine Erinnerung an frühere Aufrufe enthalten.
Beim Besuch eines Onlineshops soll der Warenkorb auch dann erhalten bleiben, wenn zwischen zwei Seiten gewechselt wird. Der Server kann dem Browser dafür eine Kennung als Cookie geben. Bei der nächsten Anfrage sendet der Browser diese Kennung im Cookie-Header zurück. Der Server kann sie seinerseits einer gespeicherten Sitzung zuordnen. Die grundlegende Übermittlung beschreibt MDN als Server → Browser → später zurück zum gleichen Server übermittelte Daten (Using HTTP cookies).
Cookies können auch Einstellungen festhalten, etwa die gewählte Sprache oder ein Darstellungsmodus. Daneben können sie für Reichweitenmessung oder die Analyse von Nutzungsverhalten eingesetzt werden. Entscheidend ist die Trennung zwischen der Technik und dem Zweck: Ein Cookie ist zunächst ein HTTP-Mechanismus; ob es für Anmeldung, Komfortfunktionen oder Auswertung eingesetzt wird, entscheidet die Anwendung.
Ein Server setzt ein Cookie gewöhnlich über einen oder mehrere Set-Cookie-Antwortheader. Darin stehen mindestens Name und Wert; weitere Attribute legen fest, wie der Browser damit umgehen soll. Bei einer späteren passenden Anfrage kann der Browser den gespeicherten Wert im Cookie-Request-Header mitsenden. Der Header Set-Cookie ist genau für diese Übergabe an den User Agent vorgesehen (Set-Cookie header).
Wichtige Attribute begrenzen Reichweite und Lebensdauer. Expires oder Max-Age können eine Ablaufzeit festlegen; ohne eine solche dauerhafte Vorgabe spricht man häufig von einem Sitzungs-Cookie, das beim Ende der Browsersitzung entfernt werden kann. Domain und Path beeinflussen, für welchen Host beziehungsweise Pfad ein Browser ein Cookie sendet. Diese Angaben sind Regeln für die Übermittlung, aber kein Ersatz für ein durchdachtes Sicherheitskonzept.
Für sensible Sitzungen sind weitere Attribute wichtig. Secure bewirkt, dass der Browser das Cookie nur über HTTPS übermittelt. HttpOnly verhindert den Zugriff durch JavaScript, lässt das Cookie aber weiterhin bei passenden HTTP-Anfragen mitsenden. SameSite steuert, ob ein Cookie in bestimmten kontextübergreifenden Anfragen gesendet wird und kann damit unter anderem Risiken bei Cross-Site-Request-Forgery verringern. Diese Maßnahmen haben unterschiedliche Aufgaben: Kein einzelnes Attribut macht eine Anwendung automatisch sicher.
Eine Person meldet sich bei einem Kundenportal an. Nach erfolgreicher Anmeldung erzeugt der Server eine zufällige Sitzungskennung und sendet sie als Cookie, etwa mit Secure und HttpOnly. Der Browser sendet die Kennung bei späteren HTTPS-Anfragen an dieses Portal zurück. Der Server erkennt daran nicht den Namen „im Cookie“, sondern kann die Kennung gegen seinen eigenen Sitzungsdatensatz prüfen und die angemeldete Sitzung zuordnen.
Meldet sich die Person ab oder läuft die Sitzung ab, muss die Anwendung die serverseitige Sitzung beenden oder die Kennung ungültig machen. Allein ein Cookie im Browser ist deshalb kein vollständiges Berechtigungssystem.
Cookies werden vor allem im Sitzungsmanagement eingesetzt: Anmeldestatus, Warenkorb oder Einstellungen können zwischen Seitenaufrufen wiedererkannt werden. Ein mehrsprachiges Angebot kann etwa die zuletzt gewählte Sprache speichern; ein Shop eine temporäre Warenkorbkennung, während Produkt- und Bestelldaten auf dem Server liegen.
Auch Analyse- und Marketingwerkzeuge können Cookies verwenden, um wiederkehrende Browser oder Interaktionen einzuordnen. Das bedeutet nicht, dass jeder Cookie-Wert selbst personenbezogene Angaben enthält. Ob eine Verarbeitung einen Personenbezug hat und welche Anforderungen dafür gelten, hängt vom konkreten Kontext, den verknüpften Daten und dem Einsatzzweck ab. Für die Einordnung von Datenbezug und Datenschutz ist der Artikel Personenbezogene Daten ein sinnvoller Ausgangspunkt; die Datenschutz-Grundverordnung beschreibt den europäischen Rechtsrahmen, nicht die technische Funktionsweise eines Cookies.
Ein Cookie kann einen Browser nicht auf beliebigen Websites wiedererkennen. Browser prüfen beim Senden Host, Pfad, Sicherheitseinstellungen und weitere Regeln. Zudem können Menschen Cookies löschen, Browserprofile wechseln oder Funktionen zur Einschränkung kontextübergreifender Speicherung nutzen. Anwendungen dürfen daher nicht voraussetzen, dass ein Cookie dauerhaft vorhanden ist.
Ein zweites Missverständnis lautet, Cookies seien immer Tracking. Tracking ist einer von mehreren möglichen Zwecken; Sitzungsverwaltung und Spracheinstellungen sind andere. Umgekehrt bedeutet ein unauffälliger Name nicht, dass die Verwendung automatisch harmlos ist. Verständliche Informationen über Zweck, Speicherdauer und beteiligte Dienste bleiben wichtig. Rechtliche Bewertungen müssen für den konkreten Dienst und den einschlägigen Rechtsraum erfolgen; dieser Artikel bietet keine individuelle Rechtsberatung.
localStorage und sessionStorage sind Browser-Speichermechanismen, werden aber nicht automatisch als Cookie-Header an einen Server gesendet. Ein Cookie ist auch nicht dasselbe wie eine Serversitzung: Das Cookie kann nur eine Kennung enthalten, während die eigentlichen Sitzungsdaten auf dem Server liegen. Schließlich ist Set-Cookie der Antwortheader zum Setzen eines Cookies; Cookie ist der Request-Header, mit dem der Browser gespeicherte Werte zurücksendet.
Secure markiertes Cookie übertragen wird.Secure, HttpOnly, Domain, Path und SameSite.Set-Cookie-Antwortheader sowie die Rückübermittlung gespeicherter Werte.