Domanda

Qualcuno può indicarmi il codice sorgente di Firefox in cui è analizzato l'intestazione dei cookie Set-Cookie? Voglio capire il comportamento esatto.

Leggi ulteriormente se vuoi sapere perché? Per vari vincoli nella mia applicazione, ho bisogno di superare più cookie all'interno dell'intestazione Single Set-Cookie. RFC-2109 chiaramente menziona,

.

"L'intestazione di risposta dei cookie Set-cookie comprende il set-cookie del token:, seguito da un elenco separato da virgola di uno o più cookie. Ogni cookie inizia con un nome= coppia di valore, seguito da zero o più semi-colon coppie di valore attributi. "

Quindi dovrei essere in grado di passare il seguente intestazione Set-Cookie

Set-cookie: nome1= valore1; attr11= attertal11; attr12= atterval12, nome2= valore2; attr21= atterval21; attr22= atterl22;

Non funziona. Tuttavia, il seguente funziona

Set-cookie: nome1= valore1, nome2= valore2; attr1= atterval1; attr2= atterval2;

E, voglio dare diversi attributi per diversi biscotti.

[Aggiorna]

Esempi reali :

Esempio # 1 -

Set-cookie: cookie1= value1; Percorso= /, cookie2= value2; Path= /

In questo caso Firefox Parses e ottiene il primo cookie (il cui nome è "cookie1" e il valore è "valore1") fuori (secondo è completamente ignorato)

Esempio # 2 -

Set-cookie: cookie1= value1, cookie2= value2; Path= /

In questo caso Firefox ritiene che ci sia un cookie il cui nome è "cookie1" e il valore è "value1, cookie2= value2". Questo, ancora, non è quello che era inteso.

È stato utile?

Soluzione

Una rapida passeggiata attraverso MXR Indica che la logica principale è in nsCookieService::SetCookieInternal .Puoi seguire i collegamenti avanti e indietro secondo necessità.Per quanto riguarda il tuo vero problema, può aiutare se si dà un vero esempio di intestazione.

Altri suggerimenti

La mia comprensione è che i browser implementano uno standard in qualche modo in modo diverso rispetto a più cookie per intestazione set-cookie.Tuttavia, è possibile inviare più intestazioni di Set-Cookie per impostare il valore di più cookie:

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

Anche se c'è qualche motivo per cui ti impegni manualmente alla risposta invece di usare qualunque possibile framework (PHP, ASP.NET, ROR, ecc.) Fornisce?

Bene, leggendo dal codice sorgente è chiaro che Firefox non implementa RFC-2109 in questo senso e utilizza CR o LF invece di "," come separatore di cookie (linea di preavviso # 1934, 1959, 1990 in http://mxr.mozilla.org/mozilla-Central/source/netwerk/Cookie/nscookieservice.cpp ).Ho provato sia su Firefox V3.6.6, CR sta funzionando ma LF non lo è.

Conclusione: su Firefox, posso usare CR anziché "," per separare i cookie.

glitch: nessuno da (cr, lf, ',') stanno lavorando su Internet-Explorer.Ora qualcuno può indicarmi il codice "Source" per cioè dove posso vedere cosa stanno usando come separatore cookie: -)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top