# Magic-Cookie

Ein Cookie (englisch [ˈkʊki]; zu Deutsch Keks oder Plätzchen; auch Magic Cookie, engl. für magisches Plätzchen) ist ein kurzes Datenpaket, welches zwischen Computerprogrammen ausgetauscht wird und für diese keine besondere Bedeutung hat. Der Begriff wird oft synonym zu den HTTP-Cookies im World Wide Web verwendet, dabei handelt es sich um eine Spezialform des Magic Cookies, welches zwischen Webbrowser und Webserver ausgetauscht wird, für diese aber völlig bedeutungslos ist und erst für die Webanwendung, z. B. einen Online-Shop, eine Bedeutung erhält, etwa den Inhalt eines virtuellen Warenkorbes.

## Frühe Verwendung und generisches Konzept

Der Begriff Magisches Cookie erschien in der Manpage der fseek-Routine der C-Standardbibliothek und datiert damit mindestens auf das Jahr 1979 zurück. Dort wird die Umsetzung der C-Funktion ftell beschrieben: Während sie eigentlich die derzeitige Position des Lesezeigers innerhalb eines Streams (z. B. einer geöffneten Datei) angeben soll, gab sie in manchen UNIX-Versionen ein magisches Cookie zurück, welches zwar eine Unterscheidung zweier Zustände erlaubte, aber keinen weiteren Aufschluss ergab. In diesem Sinn wurde ein Cookie wie ein Token verwendet, welches (ohne weiteren Kontext) keine Bedeutung hat, sondern dessen Einzigartigkeit es erlaubt, die einwandfreie Zuordnung zuzulassen. Dies kann mit einer Garderobenmarke an einer öffentlichen Garderobe auf einer Veranstaltung verglichen werden: Sie hat nur einen Wert, wenn man mit ihr zurück zur Garderobe geht.
Cookies sind daher eng verwandt oder begrifflich oft synonym verwendet mit dem Konzept von magischen Zahlen, Security-Tokens oder Netzwerk-Tokens und damit in vielen Anwendungsbereichen verbreitet.

## Verschiedene Beispiele von Magic Cookies
### HTTP-Cookie

Cookies werden genutzt, um mit einer Website bzw. Domain verbundene Informationen für einige Zeit lokal auf dem Computer zu speichern und dem Server auf Anfrage wieder zu übermitteln. Dadurch kann der Anwender die Website für sich individualisieren, z. B. die Sprache und Schriftgröße bzw. Design der Website allgemein wählen. Cookies können außerdem verwendet werden, um Besucher zu authentifizieren, mit ihnen wird ein Sitzungsbezeichner (engl. Session-ID) gespeichert.
Die Bezeichnung Cookie geht in diesem Kontext im Wesentlichen auf den US-amerikanischen Programmierer Lou Montulli im Jahr 1994 zurück. Beschäftigt mit dem Problem, dass sich Browser nicht merken konnten, welche Seiten der Benutzer schon besucht hatte, entwickelte er eine neue Technik, die er vorerst „persistent client state object“ nannte. Es handelte sich hierbei um einen fünfseitigen Programmiertext, der dem Internet ein Gedächtnis geben sollte. Als frühere Computer zu Identifikationszwecken schon Code-Teile verwendeten, um zwischen vorher aufgerufenen Seiten zu springen, nannten dies frühere Programmierer „magic cookies“. Montulli nannte sein Programm schlicht Cookie.
    Siehe auch: Flash-Cookie als besondere Form des HTTP-Cookies sowie Web Storage als weiterführende Methode

### Authentifikationscookies für X11

Magic Cookies sind eine zentrale Authentifikationsmethode im X Window System. Es ermöglicht X-Clients (Benutzerprogrammen), eine Verbindung zu einem X-Server (Darstellungsdisplay) herzustellen. Es handelt sich dabei in der Regel um eine mit Unix-Dateirechten besonders geschützte Datei, die eine geheime Zeichenkette beinhaltet die nur der X-Server kennt.