Framework para aplicaciones web
# Framework para aplicaciones web

Un framework para aplicaciones web es un framework diseñado para apoyar el desarrollo de sitios web dinámicos, aplicaciones web y servicios web. Este tipo de frameworks intenta aliviar el exceso de carga asociado con actividades comunes usadas en desarrollos web. Por ejemplo, muchos framework proporcionan bibliotecas para acceder a bases de datos, estructuras para plantillas y gestión de sesiones, y con frecuencia facilitan la reutilización de código.

## Historia

Como el diseño de la World Wide Web no era intrínsecamente dinámico, el hipertexto inicial consistió en HTML codificado a mano que se publicó en los servidores web. Cualquier modificación a las páginas publicadas debe ser realizada por el autor de las páginas. En 1993, se introdujo el estándar Common Gateway Interface (CGI) para interconectar aplicaciones externas con servidores web, para proporcionar una página web dinámica que reflejara las entradas del usuario.

Sin embargo, las implementaciones originales de la interfaz CGI generalmente tuvieron efectos adversos en la carga del servidor, ya que cada solicitud inició un proceso separado. Las implementaciones más recientes utilizan procesos persistentes entre otras técnicas para reducir el espacio en los recursos del servidor y ofrecer un rendimiento general aumentar.

En 1995, surgieron por primera vez entornos completamente integrados de desarrollo de servidor/idioma y se introdujeron nuevos lenguajes específicos para la web, como ColdFusion, PHP y Active Server Pages.

Aunque la gran mayoría de los lenguajes para crear páginas web dinámicas tienen bibliotecas para ayudar con tareas comunes, las aplicaciones web a menudo requieren bibliotecas específicas para tareas particulares, como la creación de HTML (por ejemplo, JavaServer Faces).

A fines de la década de 1990, comenzaron a aparecer marcos maduros de "pila completa", que a menudo reunían varias bibliotecas útiles para el desarrollo web en una única pila de software cohesiva para que los desarrolladores web la usaran. Ejemplos de esto incluyen ASP.NET, Java EE, WebObjects, web2py, OpenACS, Catalyst, Mojolicious, Ruby on Rails, Laravel, Grails, Django, Zend Framework, Yii, CakePHP, y Symfony.

