El protocolo HTTP es desatendido. Esto significa que no existe, en principio, relación alguna entre dos peticiones aunque estas sean consecutivas. Para poder mantener una sesión de usuario dentro de una aplicación WEB, tenemos 2 métodos.El usado por la mayoría de los sitios está basado en cookies, el otro en agregar a la URL el ID de se sesión del usuario.
Cada vez que nuestro navegador hace un pedido HTTP, envía todas las cookies válidas para el dominio donde se encuentran los archivos buscados.
He visto sitios que escriben muchas cookies y, además, con nombres y valores muy largos como por ejemplo:
UltimaVisita=23/04/2004 03:25:37 PM
Imaginemos una página que tiene HTML, JS, CSS y 20 GIFs, entonces estaremos enviando la cookie UltimaVisita unas 23 veces.
Debemos usar las cookies en forma racional y responsable. Muchas cookies harán que los usuarios conectados por DialUp naveguen más lentamente. Otra ventaja es que usando menos cantidad de cookies y más pequeñas, estaremos ahorrando ancho de banda de nuestro sitio.
En lugar de
UltimaVisita=23/04/2004 03:25:37 PM
tal vez, podamos usar
UV=20040423
Los grandes sitios de Internet, utilizan servidores dedicados a entregar imágenes. Estos usan un dominio diferente del sitio que navegamos. De esta forma, si el sitio se encuentra en www.sitio.com y las imágenes en www.img.com entonces, nuestro navegador no estará enviando las cookies del sitio cada vez que pide una imagen.
Finalmente quiero comentar algo que no todos tienen en cuenta. Un compañero decía: "Lo que viene del usuario no es confiable". Es muy fácil modificar las cookies que el navegador va a entregar al servidor. Sólo hace falta una sentencia javascript. Por lo tanto, no hay que poner cookies del tipo: admin=si
ó idUsuario=27
y si no hay otra alternativa tendremos que encriptarlas.