2010-06-29 15 views
6

Estoy viendo este problema con Safari 5 (en realidad ha sido frecuente desde al menos 4.0.5), donde parece que no establece las cookies correctamente. El sitio funciona perfectamente bien para Firefox, IE y Chrome.Safari 5 no envía todas las cookies de vuelta al servidor

Sin embargo, puedo verificar que la cookie se establece correctamente mirando las cookies de Safari que utiliza. En Windows 7 se almacena aquí: C: \ Users \\ AppData \ Roaming \ Apple Computer \ Safari \ Cookies \ Cookies.plist

Ahora el sitio en el que estoy trabajando usa cookies bastante extensamente y se almacenan en diferentes dominios.

Digamos, por ejemplo, que el sitio es www.foo.com. La cookie de inicio de sesión se establece en dominio .foo.com. Además, otras cookies se almacenan en el dominio www.foo.com, a.foo.com, b.foo.com, etc.

Safari parece confundirse cuando se dirige a www.foo.com y "olvida "para enviar todas las cookies que debería (www.foo.com, .foo.com).

No estoy seguro de si esto es un error de mi parte (caracteres no válidos en la cookie) o si esto es un error con Safari. Me gustaría saber si alguien ha encontrado esto y ha encontrado un

¡Gracias!

Editar: La única cookie que me preocupa es bastante grande, un poco menos de 4k de longitud. Contiene información codificada y los caracteres que la componen son alfanuméricos y/+ _ =

Ahora, lo extraño es que, dependiendo del dominio en el que se establece la cookie, la cookie funciona bien por sí misma. Sin embargo, cuando el usuario inicia sesión, se agrega otra cookie y Safari parece ignorar la primera. Safari envía bien la cookie de inicio de sesión y consiste en alfanuméricos junto con [] _ ​​\

Mi idea original era que podría tratarse de un conflicto de dominio. La primera cookie se estableció en www.foo.com mientras la cookie de inicio de sesión se estaba configurando en .foo.com. Sin embargo, probé esta teoría, configurándolas a .foo.com, y el problema persiste.

+0

He tenido problemas con los caracteres no válidos en una cookie que causan todo tipo de problemas. Definitivamente verificaría eso. – dmazzoni

Respuesta

11

Eche un vistazo a los límites de tamaño del navegador here. Safari 5 tiene un límite de 4 KB por solicitud. Por lo tanto, si el tamaño total de todas las cookies para el dominio (incluidos los dominios comodín asociados) supera los 4k, comenzará a perder las cookies. Creo que la lógica es que primero se sacrificará la cookie más antigua, hasta que el tamaño total del encabezado de la cookie sea inferior a 4k.

Actualmente estamos teniendo un problema con este problema, pero también hemos identificado otro escenario en el que se pierden las cookies, aunque aún no hemos entendido por qué este es el caso.

Dado el gran tamaño de una cookie individual, es probable que la siguiente solicitud agregue una nueva cookie, superando el tamaño total por encima del límite.

+2

Esto debe marcarse como la respuesta. –

Cuestiones relacionadas