Cookie
Verwendung
Der Cookie-Header trägt Name-Wert-Paare, die zuvor über den Antwort-Header Set-Cookie gespeichert wurden. Nachdem ein Server ein Cookie gesetzt hat, fügt der Browser den entsprechenden Cookie-Header in nachfolgende Anfragen an dieselbe Domain ein, vorbehaltlich der Regeln für Pfad, Domain und Ablauf.
Cookies erhalten Zustand über das zustandslose HTTP-Protokoll hinweg. Häufige Einsatzzwecke sind Sitzungsverwaltung, Authentifizierungstoken, Benutzereinstellungen und Tracking-Kennungen. Der Server liest den Cookie-Header, um den Client zu identifizieren, den Sitzungskontext wiederherzustellen oder gespeicherte Einstellungen anzuwenden.
Mehrere Cookie-Paare erscheinen in einer einzigen Cookie-Header-Zeile, getrennt durch Semikolon und Leerzeichen. Die Syntax trägt nur den Namen und den Wert jedes Cookies. Attribute wie Expires, Path, Secure und HttpOnly existieren nur im Set-Cookie-Header und wiederholen sich nicht im Cookie-Header.
Cookie: name1=value1; name2=value2
Beispiel
Ein Server setzt in einer Antwort drei Cookies. Das Cookie sid enthält eine Sitzungskennung, lang speichert eine Spracheinstellung, und theme hält eine Anzeigeeinstellung fest.
HTTP/1.1 200 OK
Content-Type: text/html
Set-Cookie: sid=abc123; Path=/; Secure; HttpOnly
Set-Cookie: lang=en; Path=/
Set-Cookie: theme=dark; Path=/
Der Browser fügt alle zutreffenden Cookies in die nächste Anfrage an dieselbe Domain ein. Nur die Name-Wert-Paare werden im Cookie-Header übertragen.
GET /dashboard HTTP/1.1
Host: example.re
Cookie: sid=abc123; lang=en; theme=dark
Eine POST-Anfrage an einen Anmelde-Endpunkt erhält ein Sitzungscookie. Das Attribut Secure stellt sicher, dass das Cookie nur über HTTPS übertragen wird, und HttpOnly verhindert den Zugriff durch JavaScript.
HTTP/1.1 200 OK
Set-Cookie: token=eyJhbGciOi; Secure; HttpOnly; SameSite=Strict
Nachfolgende Anfragen führen das Token automatisch mit.
GET /api/profile HTTP/1.1
Host: example.re
Cookie: token=eyJhbGciOi
Hinweis
Eine laufende Aktualisierung der Cookie-Spezifikation überarbeitet die Cookie-Behandlung mit SameSite-Standardwerten, den Präfixen __Host- und __Secure- sowie dem Attribut Partitioned für Cookies in Drittanbieter-Kontexten. Der Entwurf befindet sich in aktiver Entwicklung.
SameSite-Durchsetzung
Browser verwenden standardmäßig SameSite=Lax, wenn kein SameSite-Attribut gesetzt ist. Damit wird die meiste siteübergreifende Cookie-Übertragung standardmäßig blockiert. SameSite=None erfordert das Secure-Flag. Vollständige SameSite-Referenz
SEO-Auswirkung
Googlebot sendet Cookies, wenn sie vom Ursprungsserver gesetzt werden, behält sie jedoch nicht über getrennte Crawl-Sitzungen hinweg bei. Große Cookies auf Asset-Domains erhöhen die Anfragegröße während des Renderings. Eine cookielose Domain für statische Assets vermeidet diesen Mehraufwand.