„Cookies sind kleine Textdateien, die auf Ihrem Computer abgelegt werden“. Wie oft haben Sie diesen Satz gelesen, gar kopiert und wissen doch nicht was dahinter steckt? Wir bringen Licht ins Dunkel und erklären wie der elektronische Keks aufgebaut ist und wie er funktioniert. Dabei beschränken wir uns auf den Browser- bzw. HTML-Cookie.
Anwendung
Allgemein gesagt, kann ein Webserver mittels Cookies auf dem Rechner des Users Informationen ablegen. Anhand dieser Information kann der Webserver den Rechner immer wieder identifizieren.
Beispiel:
Wenn ein User im Internet shoppen möchte, muss er zunächst die ausgesuchte Webseite aufrufen. Er tippt also die Adresse des Webservers im Browser ein. Der Browser sendet eine Anfrage an den Webserver des Shopbetreibers (sog. http-request). Dieser sendet daraufhin eine Antwort, so dass die Seite in dem Browser aufgebaut wird.
Wenn der User nun beim Shoppen Waren in den Warenkorb gelegt hat und bezahlen möchten, stellt das für den Webserver voneinander unabhängige Anfragen dar. Er weiß nicht, dass der User in der vorherigen Anfrage Waren in den Warenkorb gelegt hat. Denn das (HTTP)-Protokoll ist zustandslos, d.h. die einzelnen Seitenaufrufe sind voneinander unabhängig. Klickt der User also auf die Bezahlseite, sind die Waren im Warenkorb weg. Damit sich der Webserver das merken kann, kommen Cookies zum Einsatz.
Funktionsweise eines Cookies
Damit der Webserver den Rechner identifizieren und einzelne Anfragen miteinander verknüpfen kann, setzt er bei seiner Antwort in dem Browser des Users einen Cookie. Er schickt also in seiner Antwort nicht nur die Informationen, die zum Aufbau einer Seite im Browser des Users notwendig sind, sondern auch eine zusätzliche Cookie-Zeile.
Bei der nächsten Anfrage des Users (z.B. Klick auf die Bezahlseite) übermittelt der Browser nicht nur die Anfrage sondern auch die Cookie-Informationen an den Webserver. Der Webserver kann damit den User wiedererkennen.
Aufbau eines Cookies
Das Cookie besteht aus reinem Text das mit üblichen Textverarbeitungsprogrammen verfasst werden kann. Das Cookie an sich hat also keine Funktionalität. Normalerweise stehen alle Bestandteile des Cookies in einer einzigen Zeile.
Zerbröseln wir ein Cookie und schauen uns die Zutaten genauer an. Das einfachste Cookie besteht aus einem Namen und einem Wert und könnte so aussehen:
Set-Cookie: TestCookie = 123456789
- „Set-Cookie“ ist ein Befehl an den Browser des Users, dass er diese Textdatei auf dem Rechner des Users abspeichern soll.
- „TestCookie“ steht für den Namen des Cookies, den der Diensteanbieter (Shopbetreiber) auswählt.
- Bei dem Wert „123456789“ handelt es sich um eine (zufällig) generierte Nummer. Der Webserver nutzt diese Nummer, um den Rechner zu identifizieren, wenn der User innerhalb der Webseite von Seite zu Seite surft oder die Webseite wieder aufruft. Deswegen muss diese Nummer für jeden Rechner unterschiedlich sein. Je nachdem, welche Funktion das Cookie haben soll, kann der Diensteanbieter statt einer Nummer aber auch einen anderen beliebigen Text wählen.
Domainname
Nun möchte unser Shopbetreiber, dass das Cookie an einen bestimmten Domainnamen zurückgeschickt wird. Denn der Shopbetreiber hat mehrere unterschiedliche online-Shops, die beide auf demselben Webserver gespeichert sind. Damit er weiß, dass sein TestCookie von einem Besucher des Shops A kommt (also z.B. http://example.com), muss dem Cookie also die Information mitgegeben werden, zu welcher Domain dieser gehört.
Set-Cookie: TestCookie = 123456789; domain=http://example.com/;
Website
Weiterhin möchte der Shopbetreiber, dass das Cookie nur bei bestimmten Webseiten Informationen schickt, deswegen erweitert er sein Cookie wie folgt:
Set-Cookie: TestCookie = 123456789; domain=http://example.com/; path=/shop/index.php;
Wird also auch ein Pfad angegeben (hier /shop/index.php), so wird das Cookie nur dann an den Webserver gesendet, wenn der User eine Adresse im Browser eingibt, die hinter dem Domainnamen den Pfads des Cookies (/shop/index.php) enthält.
Lebensdauer
Schließlich möchte der Shopbetreiber aber noch dem Cookie eine Lebensdauer geben, damit das Cookie beim Schließen des Browsers nicht gelöscht wird. Cookies, die für einen festgelegten Zeitraum gespeichert sind, heißen persistente Cookies, und diejenigen, die nur für die Länge des Besuches erhalten bleiben, heißen Session-Cookies. Für unser persistentes Cookie wird das Verfallsdatum 31.12.2016 hinzugefügt:
Set-Cookie: TestCookie = 123456789; domain=http://example.com/; path=/shop/index.php; expires=Sat, 31-Dez-2016 20:30:42 GMT;
HTTPS
Abschließend möchte der Shopbetreiber, dass die Cookie-Informationen über eine sichere HTTPS-Verbindung an den Webserver übertragen werden. Endet die Cookie-Zeile also mit dem Wort „secure“, dann wird das Cookie nur dann an den Webserver übertragen, wenn eine verschlüsselte Verbindung besteht. Die Ergänzung sieht wie folgt aus:
Set-Cookie: TestCookie = 123456789; domain=http://example.com/; path=/shop/index.php; expires=Sat, 31-Dez-2016 20:30:42 GMT; secure
Wiedererkannt
Wenn nun dieser Cookie auf dem Rechner des Users erfolgreich abgespeichert wurde und der User nochmal auf die Seite des Shopbetreibers gehen möchte, wird an seinen Webserver die folgende Information zusammen mit der HTTP-Anfrage geschickt: TestCookie = 123456789
Dadurch weiß der Shopbetreiber, dass der Rechner mit der Nummer „123456789“ wieder seinen Shop A besucht.
Zu beachten ist, dass das Cookie auch einen anderen Aufbau haben kann bzw. der Webserver-Anbieter die Informationen verschlüsseln kann bzw. einen Hashwert daraus bildet, so dass die einzelnen Angaben nicht im Klartext abgespeichert werden.
„Gute“ Cookies, „böse“ Cookies
Wie in unserem Eingangsbeispiel beschrieben, ermöglichen Cookies ein bequemes Surfen. Die Waren bleiben beim Weitersurfen im Warenkorb, Voreinstellungen bleiben bestehen, so dass man diese nicht immer wieder neu eingeben muss und man bleibt bei einer verschlüsselten Verbindung angemeldet und muss die Login-Daten nicht immer wieder neu eingeben.
Mit der Cookie-Technik können aber auch Profile über Surfgewohnheiten der User erstellt werden. Welche Gefahren hierbei drohen, haben wir bereits in mehreren Artikel beschrieben (z.B. hier). Letztendlich sollte jeder User für sich entscheiden, was er von sich Preis geben möchte und entsprechende Einstellungen im Browser vornehmen.
Mit freundlicher Genehmigung von Datenschutzbeauftragter Info