Welche Zeichenfolge trennt Cookies in der HTTP-Spezifikation?
-
27-10-2019 - |
Frage
Semikolon-;
, die Cookie:
-Zeichenfolge oder eine andere Zeichenfolge?
Lösung
Überprüfen von Cookies in einer HTTP-Anforderung
Der Cookie:
-Header hat die folgende Syntax:
Cookie: <Name> = <Value> { ; <Name> = <Value> }
Daher werden einzelne Cookies durch das Semikolon getrennt.
Setzen von Cookies in einer HTTP-Antwort
Wenn Sie dagegen ein Cookie in der Antwort setzen, gibt es ein Cookie pro Set-Cookie:
-Header:
Set-Cookie: <Name> = <Value> [ ; expires = <Date>] [ ; path = <Path> ] [ ; domain = <Domain> ] // etc…
Um mehrere Cookies zu setzen, wird der Set-Cookie
-Header in einer HTTP-Antwort wiederholt.
Hinweise:
- Schauen Sie sich hier ein Tutorial mit Beispielen und RFC 6265 HTTP-Statusverwaltungsmechanismus für eine normative Referenz mit allen Details der Syntax.
- Der inzwischen veraltete RFC 2965 definierte ein alternatives Paar von Headern
Cookie2
undSet-Cookie2
, die aufgegeben wurden . - Die veralteten Versionen des HTTP State Management Mechanism ( RFC 2109 und RFC 2965 ) boten die Möglichkeit, mehrere
Set-Cookie
- (oderSet-Cookie2
-) Header in einen zu falten. Diese Faltung wird jedoch von der neuesten RFC 6265 -Spezifikation nicht empfohlen.
Andere Tipps
Die Antwort ist ein Komma-,
-Zeichen.
In Abschnitt 4.2.2 von RFC 2109 gibt es diese Spezifikation des Set-Cookie
-Headers
set-cookie = "Set-Cookie:" cookies
cookies = 1#cookie
mit der folgenden Anweisung Informell umfasst der Set-Cookie-Antwortheader das Token Set-Cookie:, gefolgt von einer durch Kommas getrennten Liste von einem oder mehreren Cookies. (Formale Bedeutung von #
oben Die Notation ist in RFC 733 in Abschnitt A definiert. NOTATIONAL CONVENTIONS Punkt 5
Ein Konstrukt "#" wird ähnlich wie "*" wie folgt definiert:
<l>#<m>element
zeigt mindestens
<l>
und höchstens<m>
-Elemente an, die jeweils durch getrennt sind ein oder mehrere Kommas (",").Ja, RFC 2109 wurde von RFC 2965 überholt, was wiederum von RFC 6265 überholt wurde .
Nein, es ändert sich in diesem Zusammenhang nichts als
- Die meisten vorhandenen HTTP-Server und -Clients unterstützen RFC 2109
- RFC 6265 verbietet nicht das Falten von
Set-Cookie