Généralement, un navigateur regroupe les cookies dans un seul en-tête Cookie
, tel que:
Cookie: a=1; b=2
La norme permet-elle d’envoyer ces informations dans des en-têtes distincts, tels que:
Cookie: a=1
Cookie: b=2
Ou doivent-ils toujours être sur la même ligne?
Changé sur cette page en cherchant des détails sur le sujet. Une citation de HTTP State Management Mechanism
, RFC 6265 devrait clarifier les choses:
5.4. L'en-tête de cookie
Lorsque l'agent d'utilisateur génère une requête HTTP, il ne DOIT PAS attacher plus d'un champ d'en-tête de cookie.
Il semble que l'utilisation de plusieurs en-têtes Cookie
est, en fait, interdite!
c'est maintenant autorisé dans HTTP/2 ( RFC 754 ), qui spécifie:
8.1.2.5. Compressing the Cookie Header Field
The Cookie header field [COOKIE] uses a semi-colon (";") to delimit
cookie-pairs (or "crumbs"). This header field doesn't follow the
list construction rules in HTTP (see [RFC7230], Section 3.2.2), which
prevents cookie-pairs from being separated into different name-value
pairs. This can significantly reduce compression efficiency as
individual cookie-pairs are updated.
To allow for better compression efficiency, the Cookie header field
MAY be split into separate header fields, each with one or more
cookie-pairs. If there are multiple Cookie header fields after
decompression, these MUST be concatenated into a single octet string
using the two-octet delimiter of 0x3B, 0x20 (the ASCII string "; ")
before being passed into a non-HTTP/2 context, such as an HTTP/1.1
connection, or a generic HTTP server application.
Therefore, the following two lists of Cookie header fields are
semantically equivalent.
cookie: a=b; c=d; e=f
cookie: a=b
cookie: c=d
cookie: e=f