Was ist eigentlich ein Cookie und wieso ist es gut? Und wieso böse?

Christian Fischer
May 26, 2018 · 6 min read

Ich bin ja der festen Meinung, dass man Unwisenheit und Verunsicherung am besten mit Information begegnet. Außerdem habe ich erstens kein Blog mehr und kann somit nur hier schreiben — und zweitens habe ich in den letzten Wochen kaum anderes getan, als mich über die DSGVO und viele „Warums?“ zu unterhalten. Und über Details und noch mehr Details und noch mehr Details.

Ich fang also mal an mit der Information.

Was sind Cookies?
Cookies sind eine der ersten Techniken des World Wide Web. Ich versuche, ihre Funktion und ihre Notwendigkeit mal auf Maus-Niveau zu erklären. Bei allem Folgendem müssen wir daran denken, dass das Web so wie wir es heute kennen von Wissenschaftlern zum Wissensaustausch erdacht und und von der freien Marktwirtschaft zur Gewinnmaximierung ausgebaut und übernommen worden ist — ein Wissen was eh meist hilft, das Web zu verstehen.

Wenn man im Internetbrowser (Chrome, Explorer, Firefox, …) eine Website aufruft, dann passiert etwas vereinfacht folgendes:
Browser an Server: Hast Du ’ne Website für mich?
Server an Browser: Jup.
Browser an Server: Schick mal die Website.
Server an Browser: Hier, eine Website.

Server sind blöd.
Dann liest der Browser die Internetseite und findet darin weitere Dateien, zB Bilder oder die Anweisungen, wie das ganze HTML aussehen soll (das steht nämlich meist in einer extra Datei, dem sog. Stylesheet).
Also gehts weiter:
Browser an Server: Hast Du Bild-1 für mich?
Browser an Server: Hast Du Bild-2 für mich?
Browser an Server: Hast Du ein Stylesheet für mich?
Server ohne ein Zeichen des Erkennens an Browser: Jup.
Server ohne ein Zeichen des Erkennens an Browser: Jup.
Server ohne ein Zeichen des Erkennens an Browser: Jup.
Browser: Schick mal!
Browser: Schick mal!
Browser: Schick mal!
Server ohne ein Zeichen des Erkennens an Browser: Hier, Bild-1!
Server ohne ein Zeichen des Erkennens an Browser: Hier, Bild-2!
Server ohne ein Zeichen des Erkennens an Browser: Hier, ein Stylesheet!

Wichtig ist: Der Server hat wirklich nicht den Hauch einer Ahnung, dass der gleiche Browser wie eine halbe Sekunde vorher jetzt das Bild haben will. Er hat auch keine Ahnung, dass das Bild zur der HTML-Seite gehört, die er gerade rausgegeben hat; aber wichtiger für uns ist, dass er den Browser absolut nicht wieder erkennt. (HTML ist übrigens die Sprache, mit der Websites geschrieben sind und die ein Browser lesen und darstellen kann)

Als der Vater des World Wide Web — Tim Berners Lee — das alles erfand, da wollte er wissenschaftliche Dokumente im Web anzeigen. Da gab es keinerlei Probleme dadurch, dass Server nicht begriffen, dass ein und derselbe Benutzer mit seinem Browser gerade mehrere Dateien nacheinander haben wollten. Eher Vorteile, deswegen hat er es so erfunden.

Doof wird das, wenn man auf einer Website eine Auswahl treffen kann. Zum Beispiel, dass man die Website lieber in deutscher als in englischer Sprache sehen möchte. Oder auch, dass man gerade das schicke, mauve-farbene ärmellose Shirt in Größe M in den Warenkorb gelegt hat. Und erst, wenn ich mich irgendwo einlogge — da würde mich der doofe Server sonst auch nicht wieder erkennen. Online-Banking & -Shopping oder soziale Netzwerke wären vollkommen unmöglich.

Und hier kommen Cookies ins Spiel:
Treffe ich nämlich eine Auswahl auf einer Website, dann braucht der Server, der ja wie oben beschrieben große Probleme hat, mich wieder zu erkennen, selbst wenn ich eine Sekunde vorher da war, etwas Hilfe: Er speichert eine kleine Info auf meinem Computer.

Ich als Programmierer könnte zum Beispiel die Info „lang=de“ speichern. „Sprache(language) = deutsch“ also.
Und wenn mein Browser dann die nächste Seite aufruft, dann hat der Server zwar immer noch nicht den Hauch einer Ahnung, dass ich gerade schon da war, aber er kann auslesen, dass die Sprache deutsch sein soll und die entsprechende Seite anzeigen.
Genau so gut kann ich das schicke Shirt (oder besser seine Bestellnummer) ins Cookie schreiben und so den Warenkorb füllen. Server sind echt dämlich — ohne Cookies würden die da scheitern.

Session-Cookies und dauerhafte Cookies.
Cookies lassen sich grob noch in 2 Typen unterscheiden: Session-Cookies und dauerhafte. Wenn ich als Programmierer so ein Cookie anlegen möchte, dann kann ich festlegen, wie lang der Browser das Stückchen Info speichern soll: Soll es gelöscht werden, wenn der Besucher den Browser schließt spricht man auch von einem Session Cookie. (Programmierer schreien hier auf, ich weiß. Ich möchte die grobe Funktionsweise erklären und nicht jedes Detail)

Ich kann Cookies aber auch so anlegen, dass sie erst am 27.3. 2067 gelöscht werden. Oder wann immer ich will. Beides hat seine Berechtigung.

Nutze ich das Cookie nur, um mir zu merken, welche Unterseiten meiner Website der Besucher heute schon aufgerufen hat um die in einer Liste „zuletzt angesehener Produkte“ zu speichern, dann macht ein Session-Cookie Sinn. Nutze ich das Cookie, damit ich beim nächsten Kommentieren im Blog nicht wieder meinen Namen eingeben muss, dann darf das Cookie auch länger leben.

Die Sicherheit:
Ach ja: Als das Web noch harmlos war, da reichte es als Sicherheits-Feature, dass ein Cookie immer nur von der Website gelesen werden kann, die es geschrieben hat. mein-liebstes-soziales-netzwerk.de kann also nicht lesen, dass ich bei mein-sado-maso-shop.de immer in Größe XXL einkaufe.

Und wenn jemand das alles trotzdem nicht wollte, dann konnte er — schon immer und ewig — in den Einstellungen seines Browsers die Annahme von einfach Cookies verweigern. In den Einstellungen, Ihr wisst schon — da wo nie jemand hinguckt.

Und warum sind Cookies dann böse?
Ich hatte ja oben erwähnt, dass Websites meist aus mehreren Dateien bestehen. Aus Bildern, dem schon erwähnten Stylesheet, meist noch aus etwas Javascript (das ist eine Programmersprache, die unter anderem das Web schöner macht), vielleicht mal einem Video usw usw.

Dabei müssen — und das ist der geniale Kniff vom auch schon erwähnten Tim Berners Lee — die Dateien nicht auf dem gleichen Server liegen. Ich kann also zB eine HTML-Seite auf meinen Server meine-homepage.de speichern, aber die Bilder von schoene-meerbilder.de nehmen. Und ein Javascript von jquery.com (das ist ein Script, das heute quasi jeder benutzt). Und so weiter.

Wenn ich als Besucher auf so eine zusammengwwürfelte Seite komme, dann kann es mir passieren, dass ich ein Cookie von meine-homepage.de und eines von schoene-meerbilder.de bekomme.
Weil — Server sind ja wie erwähnt sehr doof — der Server nicht weiß, ob das schöne Meerbild gerade von hier, da oder dort aufgerufen wird.

Und jetzt die Weltherrschaft

Kann es also sein, dass mein-liebstes-soziales-netzwerk.de doch sehen kann, dass ich regelmäßig auf mein-sado-maso-shop.de einkaufe?

Kurz: Ja.

Lang: Angenommen, ich wollte also gerne wissen, was die Menschen so im Internet machen. Weil ich zum Beispiel selbst eine Website habe, die personalisierte Werbung verkauft und ein blaues F im Logo hat. Rein theoretisch. Zwinker.
Dann wäre es am praktischsten, ich würde alle Menschen, die eine Website haben dazu bringen, ein Bild von mir auf ihrer Website einzufügen. Oder eine kleine Funktion — Hauptsache irgendetwas was von meinem Server aufgerufen wird. Es könnte zB ein kleiner blauer Daumen sei, den man anklicken kann.
Yeah.
Käme — natürlich weiterhin alles rein theoretisch — jemand, der gerade auf meiner Website mit dem blauen F war und dadurch mein Cookie schon hat, an dem ich ihn wieder erkenne auf die nächste Website, dann würde ja dort der kleine Daumen warten. Der liest dann das erste Cookie und ergänzt es um die Info, wo der Besucher gerade ist. Und auf der nächsten Seite genau so und so weiter und so weiter.

Und so könnte ich — also ich als Betreiber einer Site die ein blaues F im Logo hat — exakt verfolgen, welche Wege mein Kunde Max Mustermann so durchs Netz nimmt. Weil nämlich alle, die eine Website haben, den kleinen blauen Daumen haben wollten.

Und deswegen sind Cookies irgendwie total normal und irgendwie total böse.
Und deswegen ist es vollkommen sinnlos, über Cookies an sich zu diskutieren — man müsste vielmehr darüber reden, ob man auf diese Art Daten sammeln darf. Aber dazu müsste man sich mit Technik auskenne — so wie Ihr jetzt.

Ach ja, noch eine Anekdote zum Schluss.
Wer aufgepasst hat, der kann jetzt folgendes beantworten: Kann sich eine Website — also ein Server — von sich aus merken, ob ein Benutzer Cookies annehmen möchte oder nicht, wenn das blöde allgegenwärtige Cookie-Banner ins Bild fliegt? Oder braucht man etwa ein Cookie um zu speichern, dass der Besucher kein Cookie will?

Christian Fischer

Written by

[dscho:al] Webworker, Fotograf, Bassist, Beobachter. 17 Jahre ins Internet schreiben waren genug. Oder vielleicht auch nicht.