El protocolo HTTP no tiene estado. Las sesiones son una forma de preservar el estado del cliente en las solicitudes HTTP. Puede elegir hacer eso con el manejo de sesión integrado de una plataforma o hacerlo usted mismo con parámetros de cadena de consulta. De cualquier manera, es necesario algún concepto de sesión para muchas tareas.
Probablemente a su colega no le guste una implementación específica o no haya estado usando sesiones para los fines previstos. Si necesita conservar información sobre una conexión de cliente específica a través de solicitudes HTTP, necesita algún tipo de persistencia de sesión.
Los siguientes problemas son específicos de la implementación:
Naturaleza sin tipo de variables de sesión
Naturaleza del alcance global de las variables de sesión
Servidores de equilibrio de carga que pierden sesiones
Grupos de aplicaciones / servidores reiniciando
Por ejemplo, a menudo trabajo en PHP y almaceno la información de mi sesión en una base de datos relacional. Entonces mis variables de sesión están escritas. El equilibrio de carga y los reinicios del servidor no causan problemas de sesión.
Este es más interesante:
Tiempos de espera de sesión que causan pérdida de estado
Las sesiones se conservan con mayor frecuencia a través de cookies. El cliente puede eliminarlos en cualquier momento. Pero también se pueden conservar mediante un parámetro de cadena de consulta y, por lo tanto, nunca se agota el tiempo de espera en el cliente. El tiempo de espera del servidor depende de usted. Entonces, incluso este problema es específico de la implementación.
No descartemos todo el concepto de sesiones solo porque no nos gusta una implementación particular. Cualquier buen marco de aplicación web facilitará el uso adecuado de las sesiones para preservar los inicios de sesión de los usuarios o retener cualquier otra cosa específica para la visita actual del usuario. El registro de la base de datos de un usuario puede (y debe) usarse para almacenar cosas específicas para ellos cuando inician sesión. Sin embargo, los visitantes anónimos pueden tener información temporal que también vale la pena conservar en su sesión, como una breve lista de páginas recientes visitadas o la preferencia de esconder un aviso que ya han visto. En general, solo la información temporal más pequeña es apropiada para el almacenamiento de la sesión.
using things like query string parameters instead
- En este caso, siempre use los parámetros de la cadena de consulta si es posible. Usar sesión para ese tipo de parámetro es frágil y puede introducir errores extraños cuando los usuarios tienen varias pestañas abiertas.