2010-01-16 9 views
5

Cuando configura una cookie, establece los datos de cookie sin procesar y algunos metadatos. Estos metadatos incluyen la ruta de donde es válida la cookie, el tiempo de vencimiento de la cookie, y así sucesivamente.¿Los "metadatos" de las cookies (caducidad, ruta, ...) se transfieren al servidor?

Cuando un navegador realiza una solicitud, ¿qué enviarán exactamente los navegadores? ¿Te enviará la cookie completa, con todos los "metadatos"? ¿O solo los datos reales de la cookie, sin los metadatos?

+0

Usted puede encontrar Fiddler (www.fiddler2.com) útiles para responder a preguntas de este tipo. – EricLaw

+0

Ejecuto OS X, pero gracias de todos modos :) –

+0

Puede usar Wireshark en OSX. –

Respuesta

8

No sólo el valor de la cookie es devuelto en solicitudes posteriores, los otros metadatos permanecen en el cliente.

Cuando define una cookie en el servidor, se crea un encabezado Set-Cookie en la respuesta que lleva el nombre, el valor y otros metadatos sobre la cookie. Múltiples cookies crearán múltiples encabezados Set-Cookie en la respuesta.

Cuando el navegador realiza solicitudes posteriores, comprueba su "base de datos" de cookies disponibles para ver qué cookies son apropiadas para la ruta solicitada. A continuación, crea un único encabezado Cookie en la solicitud que incluye solo una serie de pares nombre/valor de las cookies que califican.

Es importante mantener un estricto control sobre el número de cookies y el tamaño de los datos, de lo contrario, puede encontrar que el peso de los datos de cookies que se envían para cada solicitud puede ser determinante para el rendimiento. Esto sería mucho peor si los metadatos se devolvieran con las cookies también.

0

el usuario-agente volverá a transmitir los atributos de ruta, dominio y puerto si la cookie se configuró en RFC2965 (mediante el encabezado Set-Cookie2) y si el atributo fue especificado por el servidor. una muestra puede contener:

Cookie: $Version="1"; 
    name="val"; $Path="/site"; $Domain=".example.com"; $Port="81"; 
    name="val"; $Path="/site/dir"; $Domain=".example.com"; $Port="81" 

si la cookie se especifica usando la cabecera original Netscape Set-Cookie, serán retransmitidos sin atributos. si varias cookies con el mismo nombre (pero diferentes rutas) son válidas para la solicitud, se proporcionarán todas las cookies correspondientes. una solicitud ejemplo:

Cookie: name=val; name=val2 

la especificación completa está aquí:

http://tools.ietf.org/html/rfc2965

la especificación de Netscape original está aquí:

http://web.archive.org/web/20070805052634/http://wp.netscape.com/newsref/std/cookie_spec.html

+0

Set-Cookie es el encabezado de respuesta que devuelve la definición de la cookie, la pregunta es sobre qué se envía de vuelta al servidor cuando se producen otras solicitudes. – AnthonyWJones

+0

El encabezado 'Set-Cookie2' - ¿es este un encabezado estándar que la mayoría de los navegadores entenderán? –

+0

es decir, sí, ópera sí, no estoy seguro acerca de ff. el servidor puede usar cookies antiguas si el cliente no lo admite. – jspcal

1

El servidor establece la cookie con el encabezado "Set-Cookie". Esto contiene los metadatos (ruta y vencimiento), si se especifica. El cliente (navegador) solo envía la cookie en el encabezado "Cookie".

Firebug es una herramienta útil para que Firefox vea todos estos encabezados. Herramientas similares deberían estar disponibles para otros navegadores.

1

sólo los datos cookie se envía al servidor, otros metadatos es para el navegador para realizar algunas acciones como la caducidad de la cookie

Cuestiones relacionadas