(Fuente: Stackoverflow.com)
(Crédito: Usuario de Quora )
Esta es una respuesta detallada con algunos escenarios para comprender claramente la diferencia, similitud y cómo ambos pueden funcionar en conjunto y todos
- ¿Cuál es la tecnología de conversión de audio a texto más avanzada?
- ¿Las autoridades pueden rastrear a alguien con su dispositivo móvil cuando está apagado?
- ¿Cuáles son algunos casos judiciales históricos y actos legislativos en la historia de la tecnología?
- ¿Cuál es la tecnología de armas más aterradora creada?
- ¿Puede un consultor de TI invertir en las acciones de la empresa de su cliente?
Servidor de aplicaciones es un término que a veces se mezcla con un servidor web . Mientras que un servidor web maneja principalmente protocolos HTTP , el servidor de aplicaciones maneja varios protocolos diferentes, que incluyen, entre otros, HTTP .
El trabajo principal del servidor web es mostrar el contenido del sitio y el servidor de aplicaciones está a cargo de la lógica , la interacción entre el usuario y el contenido mostrado. El servidor de aplicaciones está trabajando en conjunto con el servidor web, donde uno muestra y el otro interactúa.
La información que viaja de un lado a otro entre el servidor y su cliente no se limita a un simple marcado, sino a la interacción entre ambos.
En la mayoría de los casos, el servidor crea esta interacción a través de un componente API , como J2EE (Plataforma Java 2) , EJB (Enterprise JavaBean) y otros modelos de software de aplicación diferentes.
Un ejemplo:
La mejor manera de comprender la diferencia entre los escenarios en los que un servidor de aplicaciones funciona con el servidor web frente a un escenario en el que no hay un servidor de aplicaciones es a través de una tienda en línea.
Escenario 1: servidor web sin un servidor de aplicaciones
tiene una tienda en línea con solo un servidor web y sin servidor de aplicaciones. El sitio proporcionará una pantalla donde puede elegir un producto. Cuando envía una consulta, el sitio realiza una búsqueda y devuelve un resultado HTML a su cliente. El servidor web envía su consulta directamente al servidor de la base de datos (sea paciente, lo explicaré en nuestro próximo nugget) y espera una respuesta. Una vez recibido, el servidor web formula la respuesta en un archivo HTML y lo envía a su navegador web. Esta comunicación de ida y vuelta entre el servidor y el servidor de la base de datos ocurre cada vez que se ejecuta una consulta.
Escenario 2: servidor web con un servidor de aplicaciones
Si la consulta que desea ejecutar ya se ha realizado anteriormente y no ha cambiado ningún dato desde entonces, el servidor generará los resultados sin tener que enviar la solicitud al servidor de la base de datos. Esto permite una consulta en tiempo real donde un segundo cliente puede acceder a la misma información y recibir información confiable en tiempo real sin enviar otra consulta duplicada al servidor de la base de datos. El servidor básicamente actúa como un intermediario entre el servidor de la base de datos y el servidor web. Esto permite que la información obtenida sea reutilizable en el primer escenario, ya que esta información está incrustada en una página HTML particular y “personalizada”, este no es un proceso reutilizable. Un segundo cliente tendrá que solicitar la información nuevamente y recibir otra página incrustada en HTML con la información solicitada, muy ineficiente. Sin mencionar que este tipo de servidor es muy flexible debido a su capacidad para administrar sus propios recursos, incluida la seguridad, el procesamiento de transacciones, la mensajería y la agrupación de recursos.
Para admitir una variedad de tareas complejas, este servidor debe tener una redundancia incorporada, una gran potencia de procesamiento y una gran cantidad de RAM para manejar todos los datos que extrae en tiempo real.
Las siguientes son algunas de las diferencias clave en las características de Web Server y Application Server:
- El servidor web está diseñado para servir contenido HTTP. El servidor de aplicaciones también puede servir contenido HTTP, pero no se limita solo a HTTP. Se puede proporcionar otro soporte de protocolo como RMI / RPC
- El servidor web está diseñado principalmente para servir contenido estático, aunque la mayoría de los servidores web tienen complementos para admitir lenguajes de secuencias de comandos como Perl, PHP, ASP, JSP, etc., a través de los cuales estos servidores pueden generar contenido HTTP dinámico.
- La mayoría de los servidores de aplicaciones tienen Web Server como parte integral de ellos, lo que significa que App Server puede hacer lo que sea que sea capaz de hacer. Además, el servidor de aplicaciones tiene componentes y características para admitir servicios de nivel de aplicación, como agrupación de conexiones, agrupación de objetos, soporte de transacciones, servicios de mensajería, etc.
- Como los servidores web son adecuados para contenido estático y servidores de aplicaciones para contenido dinámico, la mayoría de los entornos de producción tienen un servidor web que actúa como proxy inverso al servidor de aplicaciones. Eso significa que mientras se atiende una solicitud de página, el servidor web que interpreta la solicitud sirve contenidos estáticos (como imágenes / HTML estático). Al usar algún tipo de técnica de filtrado (principalmente extensión del recurso solicitado), el servidor web identifica la solicitud de contenido dinámico y la reenvía de forma transparente al servidor de aplicaciones
Un ejemplo de dicha configuración es el servidor HTTP Apache Tomcat y el servidor WebLogic de Oracle (anteriormente BEA). El servidor HTTP Apache Tomcat es un servidor web y Oracle WebLogic es un servidor de aplicaciones.