Cookies
Da HTTP ein sog. zustandsloses Protokoll ist, also lediglich das Versenden einer Seite auf eine Anfrage hin organisiert, ist es nicht möglich einen Nutzer über mehrere Anfragen hinweg zu identifizieren. Dies ist aber nötig, will man eine Seite mit einem Login schützen oder einen Warenkorb erstellen. Dann muss gewährleistet werden, das bekannt ist, ob der Nutzer sich bei einer vorherigen Anfrage eingeloogt hat oder nicht.
Eine mögliche Lösung dafür sind Cookies. Cookies sind kleine Textinformationen, die auf dem Client-Rechner gespeichert werden. (Die meisten Browser haben dafür entsprechende Einstellungen. Bei Firefox: Einstellungen > Datenschutz)
Ein Cookie kann maximal 4kB groß werden. Da der jeweilige Browser die Daten speichert sind Cookies nicht browserübergreifend.
Cookies bestehen aus mindestens einem Name/Wert-Paar.
Mögliche Felder sind:
name | Name des Cookies Wird ein bereits existierender Name verwendet, wird das alte Cookie überschrieben. |
domain |
Gibt den Server an, die dieses Cookie lesen darf. |
expires | Gültigkeitsende des Cookies (Oft wird die Grenze hier sehr hoch gesetzt um den Nutzer möglichst lange verfolgen zu können.) Ohne Ablaufdatum lebt das Cookie nur so lange wie der Browser geöffnet ist Das Datum muss im GMT-Format angegeben werden. In JavaScript also ein Fall für die toGMTString()-Methode. |
path | Nur die Seiten, die in diesem Pfad liegen können das Cookie lesen. "/" bedeutet von allen Verzeichnissen aus. |
secure | Dieser Parameter hat keinen Wert. Ist es gesetzt, darf das Cookie nur per HTTPS gelesen wedren. |
Syntax: Die Felder werden mit Semikolon und Leerzeichen getrennt. Beispiel:
Name=test%20Cookie; domain=.leuphana.de
Cookie setzen durch folgende Anweisung:
document.cookie="...";
Cookie lesen durch:
var cookie_string = document.cookie;
Hier Beispiel 18, das einen einfachen Zähler implementiert, die anzeigt wie oft die Seite bereits besucht wurde:
<html>
<head>
<title>Persönliche Seitenbesuche zählen mit Cookies</title>
<script type="text/javascript">
function WertHolen () {
var Wert = "";
if (document.cookie) {
var Wertstart = document.cookie.indexOf("=") + 1;
var Wertende = document.cookie.indexOf(";");
if (Wertende == -1)
Wertende = document.cookie.length;
Wert = document.cookie.substring(Wertstart, Wertende);
}
return Wert;
}
function WertSetzen (Bezeichner, Wert, Verfall) {
var jetzt = new Date();
var Auszeit = new Date(jetzt.getTime() + Verfall);
document.cookie = Bezeichner + "=" + Wert + "; expires=" + Auszeit.toGMTString() + ";";
}
function Zaehlerstand () {
var Verfallszeit = 1000 * 60 * 60 * 24 * 365;
var Anzahl = WertHolen();
var Zaehler = 0;
if (Anzahl != "")
Zaehler = parseInt(Anzahl);
Zaehler = Zaehler + 1;
WertSetzen("Zaehler", Zaehler, Verfallszeit);
return (Zaehler);
}
</script>
</head>
<body>
<h1>Eine Seite, die etwas über Sie weiß...</h1>
<script type="text/javascript">
var x = Zaehlerstand();
document.write("<p>Dies ist Ihr <b>" + x + ".<\/b> Besuch auf dieser Seite!<\/p>");
</script>
<p>Benutzen Sie doch mal die Reload-Funktion Ihres Browsers ...</p>
</body>
</html>