2008-11-12 45 views
12

En cuanto a las búsquedas de Google, el número máximo permitido de cookies depende en gran medida del navegador, sin embargo, no puedo encontrar datos recientes sobre la cantidad de cookies permitidas en los navegadores modernos.Número máximo de cookies permitidas

Necesito almacenar un número algo grande de preferencias de usuario en las cookies (para usuarios aún no registrados), entonces, ¿cuál sería la mejor manera de hacerlo? (Además, se accederá a esas cookies a través del lado del cliente javascript y del lado del servidor php)

Respuesta

21

Desde el rfc:

  • al menos 300 galletas

  • al menos 4096 bytes por cookie (como se mide por el tamaño de las caracteres que componen la cookie no terminal en la sintaxis descripción del encabezado Set-Cookie)

  • al menos 20 cookies por host único o nombre de dominio

Esos son requisitos mínimos. El equipo de IE6 no entendió eso. Todo lo demás es altamente específico del navegador. Será mejor que escribas una plataforma de prueba para probar cada navegador. Pruebe el tamaño y número máximo con pocos pasos incrementales (y verifique si todavía son legibles).

Además, parece recordar que apache tiene un problema con el gran número de cookies. Sin embargo, no recuerdo dónde he visto eso.

Aquí es un pequeño script de prueba de cookie: http://krijnhoetmer.nl/stuff/javascript/maximum-cookies/

+1

Desde ese rfc, y la misma sección citada anteriormente, el último párrafo dice: 'Las aplicaciones deben usar tan pocas y tan pequeñas cookies como sea posible, y deben lidiar con gracia con la pérdida de una cookie'. Ese puede ser un mejor consejo que preocuparse por los límites del agente de usuario. –

+0

Cuando dices "20 cookies por host único", ¿te refieres a 20 dominios compartidos en ** todos ** o 20 por subdominio? – Pacerier

+0

@Berzemus, Gosh Quise hacer +1 al comentario anterior, pero me di cuenta de que lo escribí ... ¿Sus "20 cookies por host único" significan 20 por subdominio o 20 en total? – Pacerier

15

La mejor manera sería no almacenarlas en una cookie.

Guárdelos en una base de datos y almacene la clave DB en la cookie. Si solo se trata de unas pocas preferencias, entonces la seguridad no es un gran problema.

No olvide que las cookies se enviarán con cada solicitud - si tiene 2kb de datos de cookies y carga 10 imágenes en una página, eso es un extra de 22kb de datos.

+0

También se almacenan en la base de datos, sin embargo, asumimos que habrá una cantidad de visitantes lo suficientemente grande, por lo que me siento un poco molesto por demoler la base de datos para, digamos, 20 a 50 valores en cada solicitud de página . Las cookies tomarían al menos una parte de la carga. – pilsetnieks

+0

Solo necesita sacarlos de la base de datos para el primer golpe y luego ponerlos en la sesión. – Greg

+0

wow, por cada solicitud de HTTP se envían las cookies? – tester

2

IIRC, son 20 para la mayoría general, más para algunos, y 10 para un navegador en particular (nuevamente IIRC, IE5.5?). Hasta 10 se considera un número seguro.

En realidad, no necesita más de uno: solo use uno para almacenar un ID de cliente y almacenar todo lo que necesita almacenado en el lado del servidor contra ese mismo ID. Aparte de todo lo demás, cuanto menos datos dejes al cliente, menos habrá para que eliminen/corrompan/pirateen/etc.

4

Miré en esto hoy, si quieres apoyar a la mayoría de los navegadores, entonces no exceder de 50 cookies por dominio, y no exceda de 4.095 bytes por dominio (es decir, tamaño total de todas las cookies < = 4095 bytes)

Para leer más al respecto, here is the test page and results.

6

número de cookies:

  • Chrome 9 180 permitió cookies por dominio
  • Firefox 3.6.3 Se permite 50 cookies por dominio
  • Internet Explorer 8 permite 50 cookies por dominio
  • Opera 10 y 9 permitieron 30 cookies por dominio

límites de tamaño de la galleta (4096 bytes):

  • Firefox y Safari permite cookies con hasta 4097 caracteres, es decir 4096 para el nombre y el valor y uno para el signo igual.
  • Opera permite cookies con hasta 4096 caracteres, que son para el nombre, el valor y el signo igual.
  • Internet Explorer permite cookies con hasta 4095 caracteres, que son para el nombre, el valor y el signo igual.

SRC: http://webdesign.about.com/od/cookies/f/cookies-per-domain-limit.htm y http://www.nczonline.net/blog/2008/05/17/browser-cookie-restrictions/

Cuestiones relacionadas