Mantener estado entre paginas

Solo disponible en BuenasTareas
  • Páginas : 18 (4416 palabras )
  • Descarga(s) : 12
  • Publicado : 2 de julio de 2010
Leer documento completo
Vista previa del texto
Técnicas para mantener estado entre páginas con PHP
Buenos Aires, Septiembre de 2007

1. Alcance de variables en aplicaciones de escritorio y en aplicaciones web
En el presente artículo se aborda la cuestión del ámbito (o alcance) de variables en aplicaciones web, los inconvenientes que los protocolos sin estado introducen en su desarrollo, y las posibles formas de resolver estos problemasutilizando PHP.
Comencemos con un poco de historia (muy simplificada) para que el problema quede claro. Hace unos años era posible crear una aplicación de escritorio, inicializar variables en el módulo principal del programa, y luego consultar y modificar estas variables desde cualquier procedimiento de la aplicación. En algunos casos a lo sumo era necesario declarar a estas variables como“globales” para que se encuentren siempre en alcance. Por cierto, esta facilidad para el uso de variables perennes condujo al desarrollo de programas con alto acoplamiento y problemas de mantenimiento por lo que rápidamente fueron desaconsejadas, pero esa ya es otra historia.
En ese ambiente de desarrollo aún sin llegar a utilizar variables globales se podían utilizar variables locales que sin ser tanpersistentes tenían un ciclo de vida de mediano alcance. En realidad unos de los problemas con que el programador se encontraba era el de cómo eliminar de memoria aquellas variables que se habían dejado de usar y consumían innecesariamente recursos; y es en parte por esto que aparecen en algunos lenguajes los “recolectores de basura” (garbage collector).
Lo destacable es que en ese contexto elprogramador podía decidir cúal sería el ciclo de vida de una variable sin que esto le implicara un esfuerzo adicional de codificación, y más bien tenía que cuidarse de que las variables no queden “vivas” luego de que habían dejado de ser utilizadas.
En el ecosistema Web esta lógica de programación cambia por completo. Ahora la más simple aplicación presenta un esquema de mayor complejidad. En principiopodemos observar que el núcleo de la aplicación y la interfaz de usuario se desacoplan: el núcleo de la aplicación se ejecuta en el servidor, la interfaz de usuario se despliega en el navegador web en la computadora del usuario, y el transporte entre cliente y servidor se realiza a través del protocolo HTTP. Esto significa que una aplicación web involucra una variedad de tecnologías complejas:servidores web, lenguajes de scripting, protocolos de transporte, navegadores, etcétera. Y la aplicación web “vive”, para decirlo de algún modo, en ambos espacios del ecosistema: por momentos como una aplicación más tradicional en el servidor web, pero por momentos también interactuando con el usuario a través del browser en la PC del cliente.

En términos secuenciales podemos describir el ciclode interacción en una aplicación web sencilla del siguiente modo:
1. El usuario apunta su navegador a una dirección web que representa el punto de acceso a una aplicación.
2. El servidor web recibe la petición e invoca a la aplicación web, pasando toda la información recibida desde el cliente. La aplicación web se ejecuta, procesa la información, y genera como salida una página HTML que esdevuelta al cliente a través del servidor web.
3. El cliente recibe la página HTML y la despliega en el navegador web. El usuario interactua con esa página (consulta información, completa campos de texto, etc.). Una vez finalizada la interacción el usuario realiza una nueva petición a la aplicación web, si es necesario enviando información mediante distintos métodos para que sea procesadapor la aplicación web.
4. Se repiten los pasos 2 y 3, hasta que se cierra la aplicación.
El problema de este ciclo es que HTTP, y por tanto la Web en general, es un protocolo “sin estado” (en inglés: “stateless”). Ello significa que cada petición enviada a un servidor web es independiente de cualquier otra petición. Cuando un cliente solicita una página al servidor, el servidor entrega la...
tracking img