¿Cuál es el tamaño máximo de la clave de cookie de un navegador web?

300

¿Cuál es el tamaño máximo de la clave de cookie de un navegador web?

Sé que el tamaño máximo de una cookie es 4KB, pero ¿la clave también tiene una limitación?

usuario77480
fuente

Respuestas:

359

El límite de 4K sobre el que lee es para la cookie completa, incluido el nombre, el valor, la fecha de caducidad, etc.

Una cosa a tener en cuenta: si el nombre es demasiado grande, no puede eliminar la cookie (al menos en JavaScript). Una cookie se elimina actualizándola y configurándola para que caduque. Si el nombre es demasiado grande, digamos 4090 bytes, descubrí que no podía establecer una fecha de vencimiento. Solo busqué esto por interés, no es que planee tener un nombre tan grande.

Para leer más sobre esto, aquí están los " Límites de cookies del navegador " para navegadores comunes.


Mientras esté en el tema, si desea admitir la mayoría de los navegadores, no supere las 50 cookies por dominio y los 4093 bytes por dominio . Es decir, el tamaño de todas las cookies no debe exceder los 4093 bytes.

Esto significa que puede tener 1 cookie de 4093 bytes, o 2 cookies de 2045 bytes, etc.


Solía ​​decir 4095 bytes debido a IE7, sin embargo, ahora Mobile Safari viene con 4096 bytes con una sobrecarga de 3 bytes por cookie, por lo que 4093 bytes como máximo.

Iain
fuente
14
el límite de 4K se refiere a todas las cookies en un dominio específico; por lo tanto, cuando se alcanza este límite, es probable que no pueda crear una nueva cookie.
ulkas
66
@ulkas: He agregado eso ahora. Una vez que se alcanza el límite, he observado en muchos navegadores que puede crear nuevas cookies, pero eliminará un montón de las existentes.
Iain
1
Nota: RFC 2965 ha quedado obsoleto y reemplazado por RFC 6265. La sección de límites no ha cambiado en gran medida (ver: tools.ietf.org/html/rfc6265#section-6.1 ), pero RFC 6265 es ahora la fuente canónica.
Jim OHalloran el
107

En realidad, RFC 2965, el documento que define cómo funcionan las cookies, especifica que no debe haber una longitud máxima de la clave o el tamaño del valor de una cookie , y alienta las implementaciones para admitir cookies arbitrariamente grandes . El máximo de implementación de cada navegador será necesariamente diferente, así que consulte la documentación del navegador individual.

Consulte la sección 5.3, "Límites de implementación", en el RFC .

John Feminella
fuente
13
Como de costumbre, "especificación" y "mundo real" parecen ser completamente diferentes. Debido a que las cookies se envían con CADA solicitud http, en realidad es bueno que haya límites.
BenSwayne
3
Esa es una especificación bastante inútil si en realidad hay límites. Esta es la respuesta "correcta', sin embargo!
Expiación Limitada
3
No entiendo por qué los navegadores eligen no seguir esta especificación. No hay ninguna razón por la que no debería poder volcar más de 4KB (que no es tanto) en una cookie, cuando ya existen cosas como localStorage.
William
1
Nota: RFC 2965 ha quedado obsoleto y reemplazado por RFC 6265. La sección de límites no ha cambiado en gran medida (ver: tools.ietf.org/html/rfc6265#section-6.1 ), pero RFC 6265 es ahora la fuente canónica.
Jim OHalloran el
42

Después de probar algunos navegadores yo mismo, y usando Browser Shots, he compilado la siguiente lista

ingrese la descripción de la imagen aquí

Behnam Mohammadi
fuente
3
Respondido el 18-02-2017 LOL, pero que las versiones son muy antiguas.
Ajmal Praveen
3
@AjmalPraveen Eso se debe a que esta respuesta se copia de este sitio (aunque es una versión anterior, como usted dijo). Una fuente hubiera sido agradable, por lo que las personas interesadas pueden buscar una fuente más actualizada
Robby Groot, el
44
Esta tabla exacta está actualizada y disponible en browsercookielimits.squawky.net
gskema el
39

También puede usar el almacenamiento web si las especificaciones de la aplicación lo permiten (tiene soporte para IE8 +).

Tiene 5M (la mayoría de los navegadores) o 10M (IE) de memoria a su disposición.

" Web Storage (Segunda edición) " es la API y " HTML5 Local Storage " es un comienzo rápido.

Miguel
fuente
44
Probablemente debería señalarse aquí que una advertencia para usar el almacenamiento web es que, sin una solución alternativa, los datos almacenados en el almacenamiento web solo pueden almacenarse / accederse desde HTTP O HTTPS, pero no compartirse entre ellos (incluso para el mismo sitio).
ilasno
2
@ilasno Afaik existe la misma limitación para las cookies tradicionales.
Steve Midgley
La advertencia más importante es que, en lugar del almacenamiento web, el almacenamiento de sesión y el almacenamiento local solo son accesibles desde el navegador, no desde el servidor. Definitivamente, eso es algo a considerar al elegir entre cualquiera de esas y cookies, que son legibles tanto en el navegador como en el servidor.
Vadorequest
16

Una clave de cookie (utilizada para identificar una sesión) y una cookie son las mismas que se utilizan de diferentes maneras. Entonces el límite sería el mismo. Según Microsoft sus 4096 bytes.

MSDN

las cookies generalmente están limitadas a 4096 bytes y no puede almacenar más de 20 cookies por sitio. Al usar una sola cookie con subclaves, usa menos de esas 20 cookies que su sitio tiene asignadas. Además, una sola cookie ocupa unos 50 caracteres para gastos generales (información de caducidad, etc.), más la longitud del valor que almacena en ella, todo lo cual cuenta para el límite de 4096 bytes. Si almacena cinco subclaves en lugar de cinco cookies separadas, guarda la sobrecarga de las cookies separadas y puede ahorrar alrededor de 200 bytes.

cgreeno
fuente
77
Por cierto, solo porque tiene alrededor de 4KB de almacenamiento de cookies del navegador para jugar, debe considerar seriamente si es una buena idea o no.
NotMe
¿Puede confirmar si por dominio / sitio el número de cookies no puede exceder más de 20? o es aumentado por ahora?
Mutante
2

No es del todo una respuesta directa a la pregunta original, pero es relevante para los curiosos que tratan rápidamente de comprender visualmente su planificación de almacenamiento de información de cookies sin implementar un algoritmo limitador complejo, esta cadena tiene 4096 bytes de caracteres ASCII:

"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmn"

stackuser83
fuente