Una aplicación web es una aplicación cliente-servidor en la que el cliente interactúa con un servidor web mediante un navegador . La lógica de la aplicación web se distribuye entre el servidor y el cliente, los datos se almacenan principalmente en el servidor, la información se intercambia a través de la red . Una ventaja de este enfoque es que los clientes son independientes del sistema operativo específico del usuario , por lo que las aplicaciones web son servicios multiplataforma.
Las aplicaciones web comenzaron a utilizarse ampliamente a fines de la década de 1990 y principios de la de 2000 .
Una ventaja significativa de crear aplicaciones web para admitir la funcionalidad estándar del navegador es que la funcionalidad debe ejecutarse independientemente del sistema operativo de un cliente determinado. En lugar de escribir diferentes versiones para Microsoft Windows , Mac OS X , GNU/Linux y otros sistemas operativos, se crea una aplicación una vez para una plataforma arbitraria y se implementa en ella. Sin embargo, diferentes implementaciones, CSS , DOM y otras especificaciones en los navegadores pueden causar problemas en el desarrollo de aplicaciones web y el soporte posterior. Además, la capacidad del usuario para configurar muchos ajustes del navegador (por ejemplo, tamaño de fuente , colores, deshabilitar la compatibilidad con secuencias de comandos) puede impedir que la aplicación funcione correctamente.
Otro enfoque (menos versátil) es usar subprogramas de Adobe Flash , Silverlight o Java para implementar toda o parte de la interfaz de usuario. Debido a que la mayoría de los navegadores admiten estas tecnologías (generalmente a través de complementos ), las aplicaciones Flash o Java pueden ejecutarse con facilidad. Debido a que le dan al programador más control sobre la interfaz, pueden solucionar muchas incompatibilidades en las configuraciones del navegador, aunque las incompatibilidades entre las implementaciones de Java o Flash del lado del cliente pueden generar varias complicaciones.
Para 2015, la tecnología Adobe Flash no es compatible con Chrome, Safari y otros navegadores populares. [una]
Debido a la similitud arquitectónica con las aplicaciones cliente-servidor tradicionales, de alguna manera clientes "gruesos" , existen disputas sobre la corrección de clasificar dichos sistemas como aplicaciones web; el término alternativo es Rich Internet Applications .
Se utilizan enfoques para el diseño arquitectónico de aplicaciones web [2] . Una aplicación web consta de una parte de cliente y otra de servidor, implementando así la tecnología "cliente-servidor" .
La parte del cliente implementa la interfaz de usuario [3] , genera solicitudes al servidor y procesa las respuestas de este.
La parte del servidor recibe una solicitud del cliente, realiza cálculos, luego genera una página web y la envía al cliente a través de la red utilizando el protocolo HTTP .
La propia aplicación web puede actuar como cliente de otros servicios, como una base de datos u otra aplicación web alojada en un servidor diferente. Un ejemplo llamativo de una aplicación web es el sistema de gestión de contenido de artículos de Wikipedia : muchos de sus participantes pueden participar en la creación de una enciclopedia en línea utilizando los navegadores de sus sistemas operativos (ya sea Microsoft Windows , GNU/Linux o cualquier otro sistema operativo). ) y sin descargar módulos ejecutables adicionales para trabajar con la base de datos de artículos.
Un nuevo enfoque para el desarrollo de aplicaciones web llamado Ajax está ganando popularidad actualmente . Al usar Ajax , las páginas de la aplicación web no se recargan por completo, sino que solo descargan los datos necesarios del servidor, lo que las hace más interactivas y productivas.
También recientemente, está ganando gran popularidad la tecnología WebSocket , que no requiere solicitudes constantes del cliente al servidor, sino que crea una conexión bidireccional, en la que el servidor puede enviar datos al cliente sin una solicitud de este último. Por lo tanto, se hace posible gestionar dinámicamente el contenido en tiempo real.
Para crear aplicaciones web en el lado del servidor, se utilizan una variedad de tecnologías y cualquier lenguaje de programación :
Nombre | Licencia | Servidor web |
---|---|---|
ÁSPID. | propiedad | especializado |
ASP.NET | propiedad | especializado |
C / C++ | libre | casi cualquiera |
Java [4] | libre | muchos, incluyendo gratis |
Perl | libre | casi cualquiera |
PHP | libre | casi cualquiera |
Pitón | libre | casi cualquiera |
rubí | libre | casi cualquiera |
Nodejs | Licencia MIT | propio |
ASP.NET vSiguiente | apache 2 | casi cualquier [Ed. una] |
En el lado del cliente se utiliza: