¿Por qué los sitios web populares almacenan datos muy complicados relacionados con la sesión en cookies, y qué significa todo esto?

19

Como desarrolladores web, todos aprendemos que las sesiones ayudan a superar los problemas relacionados con la naturaleza sin estado de HTTP. Creamos una identificación de sesión única y la enviamos al navegador, y cuando el navegador nos envía la misma identificación, identificamos al usuario fácilmente.

Todo esto suena bastante sencillo y NO es tan complicado de implementar en ningún idioma.

AHORA

Mira las siguientes capturas de pantalla que tomé. Estos muestran los tipos de cookies que almacenan los sitios web populares. Parece que están almacenando múltiples ID de sesión, o están intentando ocultar la identificación real configurando tantas cookies, o es algo que están tomando medidas de seguridad muy especializadas para evitar el secuestro de sesión y otros problemas relacionados. O lo que sea.

Gmail (antes de iniciar sesión)

ingrese la descripción de la imagen aquí

Gmail (después de iniciar sesión)

ingrese la descripción de la imagen aquí

Facebook

ingrese la descripción de la imagen aquí

StackExchange

ingrese la descripción de la imagen aquí

(No te preocupes, no puedes robar mi sesión, es obsoleta e incompleta :))

Entonces, mi pregunta es: ¿para qué sirve esta complicación? Explique qué significan estas cookies diferentes (en general) y para qué fines se establecen. Por último, insinúa cómo puedo hacerlo (y si debería hacerlo) en mis propias aplicaciones.

Una pregunta más: en muchos casos, los valores en las cookies parecen codificados en URL, ¿por qué?

codificador de árboles
fuente

Respuestas:

21
  1. A veces no es práctico almacenar ciertos datos en una tabla de sesión en la base de datos. Si ciertos datos se actualizan mucho , también podría empantanar la base de datos. Si ese es el caso y los datos no son demasiado importantes, es mejor que se almacenen en una cookie separada.

  2. Cuando (1) sucede, debe lidiar con el límite de 4 kb por cookie, por lo que almacenar todos los datos de la sesión en la cookie en una cookie es una mala idea.

  3. Sería bueno poder almacenar todo en la cantidad mínima de cookies requerida, pero los problemas de complejidad del proyecto lo hacen difícil. Algunas aplicaciones son desarrolladas por varios equipos . A veces, lo que ve como un servidor web es en realidad un proxy que se comunica con varios grupos diferentes de servidores web, enrutando diferentes secciones del sitio a diferentes grupos, cada uno con su propio conjunto de cookies.

  4. Las cookies son baratas Eres la excepción a la regla: nadie mira en su tienda de cookies para ver cuántas cookies tienen. Y hay pocos beneficios de rendimiento al tratar de combinar todos los datos de sesión del lado del cliente en la menor cantidad de cookies posible.

Michael Slade
fuente
También soy la excepción a la regla.
Michael Slade