En el plano del control de las aplicaciones, los web frameworks pueden dividirse en dos clases. Mientras que los frameworks web basados en acciones (action-based) reproducen el modelo de solicitud/respuesta (request/response) en el que se basa HTTP, los web frameworks basados en componentes (component-based) prescinden de él.
Frameworks web basados en acciones: en los entornos de trabajo web basados en acciones, el controlador constituye una instancia central que se hace cargo de las solicitudes de los clientes, las valida y pone en marcha una acción. Para cada posible acción, los desarrolladores de apps tienen que crear previamente un objeto de software que contenga la correspondiente lógica de la aplicación y dicho objeto puede, por lo general, deducirse de clases abstractas.
Una vez finalizada la acción, el controlador actualiza el modelo de datos y transmite el resultado a la vista, que genera la respuesta y la manda de vuelta al cliente.
Los frameworks web basados en acciones se apoyan en el patrón MVC y reciben la nomenclatura de “request-based” debido a la estricta aplicación del esquema request/response. Sus representantes clásicos son:
Debido a que los desarrolladores de aplicaciones son los encargados de definir en detalle las posibles acciones de los frameworks web basados en acciones, se habla de enfoque white box. Este posibilita que los desarrolladores tengan más margen de acción, aunque requiere una mejor comprensión de los web frameworks correspondientes, ya que los desarrolladores son los responsables de la creación de HTML, CSS y JavaScript.
Frameworks web basados en componentes: en contraposición al enfoque controlado por acciones, los web frameworks controlados por componentes prescinden del patrón solicitud/respuesta (request/response) en el que se basa HTTP y en el que la interfaz de usuario de una aplicación web es contemplada como una recopilación de componentes. Para cada uno de estos componentes, que están unidos del lado del servidor con objetos de software, se definen determinadas reacciones durante el desarrollo de la aplicación web. Estas dan lugar a ciertos eventos que se resuelven por medio de una interacción del usuario con los componentes. En este caso también se puede hablar de frameworks web controlados por eventos. Sus representantes clásicos son:
La idea básica que se esconde tras el enfoque basado en componentes es la de agrupar acciones similares. El componente AccountController representa, por ejemplo, acciones como login, logout o getAccount. Un objeto de software puede ser responsable de más de una acción y, a este respecto, los web frameworks basados en componentes ofrecen, por lo general, una gran selección de componentes reutilizables que ocultan los detalles del esquema request/response a los desarrolladores de apps. En este contexto se puede hablar de black box. Este tipo de frameworks web son apropiados para los desarrolladores que quieren basarse, en primer lugar, en componentes predefinidos. Quien quiera tener mayores libertades con respecto a HTTP, HTML, CSS y JavaScript, es más conveniente que opte por los web frameworks basados en acciones.