Plusieurs Set-cookie en-têtes HTTP
Je suis en train d'écrire une petite classe qui agit comme une base de client HTTP. Dans le cadre d'un projet sur lequel je travaille, je suis en train de faire ce cookie au courant. Cependant, il est clair pour moi ce qui se passe quand mon client reçoit de multiples "Set-Cookie" en-têtes avec la même clé, mais des valeurs différentes sont définies.
Par exemple,
Set-Cookie: PHPSESSID=abc; path=/
Set-Cookie: PHPSESSID=def; path=/
Set-Cookie: PHPSESSID=ghi; path=/
Lequel des deux est censé être la valeur pour PHPSESSID? Généralement, cela arrive lorsque vous appelez la fonction session_start() et puis session_regenerate_id() sur la même page. Chacun va définir son propre en-tête. Tous les navigateurs ne semblent pas d'accord avec cela, mais je n'arrive pas à obtenir mon client de choisir le droit de l'une d'.
Des idées?!
Vous devez vous connecter pour publier un commentaire.
RFC 6265 section 4.1.2 états:
Donc, je voudrais traiter les en-têtes dans l'ordre donné et de les remplacer si il y a un doublon. Donc dans votre cas vous avez juste un PHPSESSID=ghi.
RFC 6265 états:
Je serais très inquiet si votre service envoie plusieurs Set-Cookie-têtes avec la même clé. Surtout parce que j'ai vu les agents utilisateurs et les mandataires se comporter de façon inattendue - parfois en prenant la valeur du premier en-tête, parfois en réorganisant les en-têtes.
En tant que client, l'utilisateur typique comportement de l'agent semble être de prendre la valeur du dernier en-tête. Le RFC fait allusion à ce comportement avec cette déclaration:
La réponse est censé être dans draft-ietf-httpstate-cookie.