Nella specifica HTTP, qual è la stringa che separa i cookie?
-
27-10-2019 - |
Domanda
Punto e virgola ;
, la stringa Cookie:
o qualche altra stringa?
Soluzione
Ispezione dei cookie in una richiesta HTTP
L'intestazione Cookie:
ha la seguente sintassi:
Cookie: <Name> = <Value> { ; <Name> = <Value> }
Quindi i singoli cookie sono separati dal punto e virgola.
Impostazione dei cookie in una risposta HTTP
D'altra parte, quando si imposta un cookie nella risposta, c'è un cookie per l'intestazione Set-Cookie:
:
Set-Cookie: <Name> = <Value> [ ; expires = <Date>] [ ; path = <Path> ] [ ; domain = <Domain> ] // etc…
Per impostare più cookie, l'intestazione Set-Cookie
viene ripetuta in una risposta HTTP.
Note:
- Dai un'occhiata qui per un tutorial con esempi e RFC 6265 HTTP State Management Mechanism per un riferimento normativo che mostra i dettagli completi della sintassi.
- L'ormai obsoleto RFC 2965 ha definito una coppia alternativa di intestazioni
Cookie2
eSet-Cookie2
che sono state abbandonate . - Le versioni obsolete di HTTP State Management Mechanism ( RFC 2109 e RFC 2965 ) hanno fornito un modo per piegare più intestazioni
Set-Cookie
(oSet-Cookie2
) in una sola. Tuttavia, questa piegatura non è consigliata dalle ultime RFC 6265 specifiche.
Altri suggerimenti
La risposta è il segno di una virgola ,
.
Nella sezione 4.2.2 di RFC 2109 c'è questa specifica dell'intestazione Set-Cookie
set-cookie = "Set-Cookie:" cookies
cookies = 1#cookie
con la seguente dichiarazione Informalmente, l'intestazione della risposta Set-Cookie comprende il token Set-Cookie :, seguito da un elenco separato da virgole di uno o più cookie. (Formalmente significato di #
nel precedente la notazione è definita nella RFC 733 nella sezione A. NOTATIONAL CONVENTIONS , punto 5
Viene definito un costrutto "#", simile a "*", come segue:
<l>#<m>element
indicando almeno
<l>
e al massimo<m>
elementi, ciascuno separato da una o più virgole (",").
Sì, RFC 2109 era obsoleto da RFC 2965, che a sua volta era obsoleto da RFC 6265 .
No, non cambia nulla in questo contesto come
- La maggior parte dei client e dei server HTTP esistenti supporta RFC 2109
- RFC 6265 non vieta la piegatura del codice tag generacodic