Question

Quelqu'un peut-il me signaler au code source Firefox où l'en-tête Set-Cookie est analysé? Je veux comprendre le comportement exact.

Lisez plus loin si vous voulez savoir pourquoi? Pour différentes contraintes dans ma demande, je dois transmettre plusieurs biscuits à l'intérieur de l'en-tête Single Cookie. RFC-2109 mentionne clairement,

"Ensemble de réponse à cookie Ensemble comprend le jeu de jeton-cookie: suivi d'une liste séparée par des virgules d'un ou de plusieurs biscuits. Chaque cookie commence par une paire de valeurs, suivie de zéro ou plus séparé de semi-colon paires d'attributs-valeur. "

Donc, je devrais être capable de passer à l'en-tête Set-Cookie suivant

Ensemble-Cookie: nom1= valeur1; attr12= attrvonfal11; attr12= attrval12, nom2= valeur2; attr21= attrvabilité21; attr22= attrvonfal22;

Cela ne fonctionne pas. Cependant, suivant fonctionne

SET-Cookie: nom1= value1, nom2= valeur2; attr1= attroval1; attr2= attroval2;

et, je veux donner différents attributs pour différents biscuits.

[MISE À JOUR]

Exemples réels :

Exemple # 1 -

Ensemble-Cookie: Cookie1= Value1; Chemin= /, cookie2= valeur2; Chemin= /

Dans ce cas, Firefox analyse et obtient le premier cookie (dont le nom est "Cookie1" et la valeur est "valeur1") en dehors de celui-ci (la seconde est complètement ignorée)

exemple # 2 -

SET-Cookie: Cookie1= Value1, Cookie2= Value2; Chemin= /

Dans ce cas, Firefox croit qu'il y a un cookie dont le nom est "cookie1" et valeur est "value1, cookie2= valeur2". Ceci, encore une fois, n'est pas ce qui était destiné.

Était-ce utile?

La solution

Une promenade rapide via MXR Indique que la logique principale est dans nsCookieService::SetCookieInternal .Vous pouvez suivre les liens en arrière au besoin.En ce qui concerne votre problème réel, cela peut aider si vous donnez un véritable exemple d'en-tête.

Autres conseils

Ma compréhension est que les navigateurs mettent en œuvre la norme quelque peu différemment en ce qui concerne plusieurs biscuits par tête de cookie définie.Cependant, vous pouvez envoyer plusieurs en-têtes Set-Cookie pour définir la valeur de plusieurs cookies:

Set-Cookie: name1=value1; attr11=attrval11; attr12=attrval12
Set-Cookie: name2=value2; attr21=attrval21; attr22=attrval22

Bien que existe-t-il une raison pour que vous soyez manuellement en-tête vers la réponse au lieu de l'utilisation de votre cadre (PHP, ASP.NET, ROR, etc.)?

Eh bien, la lecture du code source Il est clair que Firefox ne met pas en œuvre RFC-2109 à cet égard et utilise CR ou LF au lieu de "", comme séparateur de cookie (ligne de préavis n ° 1934, 1959, 1990 dans http://mxr.mozilla.org/mozilla-central/source/netwerk/cookie/nscookieservice.cpp ).J'ai essayé à la fois sur Firefox V3.6.6, CR fonctionne, mais si elle n'est pas.

Conclusion: sur Firefox, je peux utiliser CR au lieu de "", pour séparer les cookies.

Glitch: Aucun de (Cr, LF, ',') travaillent sur Internet-Explorer.Maintenant, quelqu'un peut-il me diriger le code "Source" pour IE, où je peux voir ce qu'ils utilisent comme séparateur de cookie: -)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top