Dans la spécification HTTP, ce qui est la chaîne qui sépare les cookies?
-
27-10-2019 - |
Question
Semicolon ;
, la chaîne de Cookie:
ou une autre chaîne?
La solution
cookies dans une Inspecter requête HTTP
L'en-tête Cookie:
a la syntaxe suivante:
Cookie: <Name> = <Value> { ; <Name> = <Value> }
Par conséquent les cookies individuels sont séparés par le point-virgule.
les cookies Mise en une réponse HTTP
Par contre, quand un cookie dans la réponse, il y a un cookie par l'en-tête de Set-Cookie:
:
Set-Cookie: <Name> = <Value> [ ; expires = <Date>] [ ; path = <Path> ] [ ; domain = <Domain> ] // etc…
Pour configurer plusieurs cookies l'en-tête de Set-Cookie
est répété dans une réponse HTTP.
Notes:
- Jetez un oeil pour un tutoriel avec des exemples, et RFC 6265 HTTP mécanisme de gestion État pour une référence normative montrant tous les détails de la syntaxe.
- Le désormais obsolète RFC 2965 défini une paire autre des en-têtes et
Cookie2
Set-Cookie2
qui ont été abandonnés . - Les versions OBSOLETED du HTTP mécanisme de gestion État ( RFC 2109 et RFC 2965 ) a fourni un moyen pour plier plusieurs en-têtes
Set-Cookie
(ouSet-Cookie2
) en un seul. Cependant, ce pliage n'est pas recommandé par la dernière RFC 6265 spec.
Autres conseils
La réponse est un signe ,
virgule.
Dans la section 4.2.2 de RFC 2109 il y a cette spécification d'en-tête Set-Cookie
set-cookie = "Set-Cookie:" cookies
cookies = 1#cookie
avec la déclaration suivante Officieusement, l'en-tête de réponse Set-Cookie comprend le jeton Set-Cookie :, suivi d'une virgule liste séparée d'un ou plusieurs cookies. (ce qui signifie Formellement de #
au-dessus la notation est définie dans RFC 733 dans la section A. notationnelles CONVENTIONS point 5
Une construction "#" est défini, similaire à "*", comme suit:
<l>#<m>element
indiquant au moins
<l>
et à la plupart des éléments de<m>
, chacun séparé par un ou plusieurs des virgules ( "").
Oui, RFC 2109 a été rendu obsolète par la RFC 2965, ce qui a été rendu obsolète par RFC 6265 .
Non, cela ne change rien dans ce contexte que
- la plupart HTTP existants serveurs et clients prennent en charge la RFC 2109
- RFC 6265 ne pas interdire pliage
Set-Cookie