La línea se está difuminando hoy en día, pero generalmente una aplicación web contiene lógica de negocios tanto del lado del servidor como del lado del cliente, mientras que un sitio web simple generalmente sirve contenido estático y tiene cierta lógica del lado del cliente. (La lógica del lado del cliente significa que cualquier lógica se realiza en el navegador web y el servidor, lo que significa que hay computadoras trabajando en segundo plano).
La forma en que diferenciaría un sitio web frente a una aplicación web para un cliente sería darles ejemplos de cada uno.
Aquí hay un ejemplo:
- ¿Qué pasos implica la configuración de un servidor de producción para una aplicación web?
- ¿Qué tan difícil sería crear una aplicación web de transmisión de música?
- Para la aplicación de rieles complejos, ¿cuál es el enrutamiento de recursos de patrón de aplicación de elección correcta o: controller /: action /: id?
- ¿Cuáles son los pros y los contras de las aplicaciones web completamente basadas en tokens basadas en sesiones y en sesiones gratuitas?
- Si hago una aplicación web en Angular2 que se ejecuta en AWS (S3, DynamoDB), ¿todavía necesito hacer alguna programación del lado del servidor (como Play o PHP o Python)?
El cliente A dirige un restaurante chino. Quieren enumerar su menú, horarios e información de contacto.
Generalmente consideraría que es un sitio web, porque toda la lógica del sitio se puede programar con anticipación. Los datos no son realmente dinámicos, lo que significa que cuando un visitante visita el sitio, generalmente verá lo mismo y no podrá cambiarlo. El propietario del sitio puede cambiar el contenido desde el servidor, pero de lo contrario cada vez que un usuario visite el sitio, mostrará básicamente exactamente lo mismo. Cualquier interactividad se realiza utilizando la lógica del lado del cliente con Javascript, lo que significa que ocurre en tiempo real en el navegador web. Por lo general, no hay un servidor que tome decisiones sobre cómo se representará el sitio.
El cliente B dirige una tienda de juguetes y desean mantener un inventario de sus artículos y permitir que las personas se registren y realicen pedidos (en techno babble, quieren que sus usuarios realicen operaciones CRUD).
Generalmente consideraría que esta es una aplicación web porque requiere datos dinámicos y vistas que cambiarán en cualquier momento. Los usuarios del sitio colocarán artículos en su carrito de compras (creando un registro en una base de datos, lo que requiere una lógica empresarial más compleja que se ejecuta en un servidor).
La arquitectura de las aplicaciones web a menudo se basa en un marco de Model View Controller (MVC para abreviar) o cualquier derivación.
Modelo, que significa los datos, Vista que significa el contenido HTML estático que ve un usuario en un momento dado y Controlador, que se encuentra entre los dos proporcionando la lógica de negocios para cambiar los datos y las vistas en función de la interacción del usuario.
La razón por la que la línea a veces se vuelve borrosa es porque hoy en día, los sitios web simples a menudo se crean utilizando un generador de sitios web estáticos, lo que permite al desarrollador aplicar la lógica de cómo se construye el sitio con anticipación. Sin embargo, ese es un tema completamente diferente y creo que he cubierto tu pregunta.
Espero que esto ayude un poco.
Saludos,
Ryan Collins – Rapport tecnológico
Desarrollo móvil y web