Pregunta

Puede por favor alguien que me señale el código fuente de Firefox donde encabezado Set-Cookie se analiza?Quiero entender el comportamiento exacto.

Leer más si quieres saber por qué?Para varios de restricción en mi aplicación, tengo que pasar varias cookies dentro de un solo encabezado Set-Cookie.RFC 2109 menciona con claridad,

"Set-Cookie encabezado de respuesta comprende el token de Set-Cookie:, seguido por una lista separada por comas de una o más cookies.Cada cookie comienza con un par NOMBRE=VALOR, seguido por cero o más semi-separados por dos puntos pares atributo-valor."

Por lo que debe ser capaz de pasar el siguiente encabezado Set-Cookie

Set-Cookie:nombre1=valor1;attr11=attrval11;attr12=attrval12,nombre2=valor2;attr21=attrval21;attr22=attrval22;

No funciona.Sin embargo, después de que hace el trabajo

Set-Cookie:nombre1=valor1, nombre2=valor2;attr1=attrval1;attr2=attrval2;

Y, quiero dar atributos diferentes para diferentes cookies.

[Actualización]

Ejemplos Reales:

Ejemplo#1-

Set-Cookie:cookie1=valor1;Path=/,cookie2=valor2;Path=/

En este caso firefox analiza y obtiene el primer cookie(cuyo nombre es "cookie1" y el valor es "valor1") de ella(la segunda es completamente ignorado)

Ejemplo#2-

Set-Cookie:cookie1=valor1,cookie2=valor2;Path=/

En este caso firefox cree que hay una cookie cuyo nombre es "cookie1" y el valor es "valor1,cookie2=valor2".Esto, de nuevo, no es lo que se pretendía.

¿Fue útil?

Solución

Un paseo rápido a través de mxr indica que la lógica principal está en nsCookieService::SetCookieInternal .Puedes seguir los enlaces de un lado a otro como sea necesario.En cuanto a su problema real, puede ayudarlo si le da un encabezado de ejemplo real.

Otros consejos

Mi entendimiento es que los navegadores de aplicar la norma de forma algo diferente en relación a varias de las cookies por encabezado Set-Cookie.Sin embargo, usted puede enviar múltiples Set-Cookie encabezados para establecer el valor de varias cookies:

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

Aunque hay alguna razón por la que estás manualmente los encabezados de la respuesta en lugar de utilizar cualquiera que sea su framework (PHP, ASP.NET, RoR, etc) proporciona?

Bueno, la lectura del código fuente está claro que Firefox no implementa RFC-2109 en este sentido y usa CR o LF en lugar de '', como separador de cookies (línea de aviso # 1934, 1959, 1990 en http://mxr.mozilla.org/mozilla-central/source/netwerk/pookie/nscookieVice.cpp ).Intenté tanto en Firefox V3.6.6, CR está funcionando, pero si no lo es.

Conclusión: en Firefox, puedo usar CR en lugar de '', 'para separar las cookies.

Glitch: Ninguno fuera de (CR, LF ", ') está trabajando en Internet-Explorer.Ahora puede alguien apuntarme a un código "fuente" para, por ejemplo, donde puedo ver lo que están usando como separador de cookies: -)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top