Hmm, pregunta bastante interesante. La diferencia es, en mi opinión, sutil.
Los servidores web son las piezas de software que reciben solicitudes de clientes (principalmente navegadores web). Los marcos web, por otro lado, proporcionan infraestructura que le permite procesar y crear respuestas a la solicitud que recibió el servidor web. Una vez que haya procesado y generado una respuesta, la entrega al servidor web y la envía de vuelta al cliente.
Estas son responsabilidades bastante separadas. Trataré de explicar cómo. El canal de comunicación entre el servidor y el cliente es mantenido por el servidor web. Internamente, el servidor web invoca una aplicación, generalmente construida a través de un marco, y le informa sobre la solicitud y los parámetros. El marco web determina qué devolver al cliente. Forma todo el texto de respuesta relevante, html, y lo entrega al servidor web.
- ¿Es un servidor un dispositivo o un código de software?
- Cómo montar NFS un directorio de un servidor a otro servidor
- ¿Cuáles son las ventajas y desventajas de las diferentes arquitecturas de cometas?
- Servidores: ¿Cuáles son algunos de sus mayores desafíos técnicos y operativos para ejecutar su propio hardware?
- Cómo configurar JBoss
Los desafíos en ambos extremos también son bastante diferentes. Para los marcos web como django, rails, sinatra, spring-mvc, la principal preocupación es la facilidad de desarrollo, el acceso completo al objeto de solicitud, la capacidad de mantener algún estado si es necesario y, lo más importante, tener una forma de escribir todos los lógica de nivel empresarial.
Para servidores web como apache, tomcat, nginx, los desafíos son la ejecución paralela, manteniendo conexiones a miles de usuarios al mismo tiempo (concurrencia). Para poder transmitir grandes cantidades de datos en un tiempo determinado (rendimiento), etc.