Es la aplicación instalada en un servidor (máquina, ordenador) encargada de devolver la información (páginas web y su contenido) ante las peticiones recibidas por parte de los usuarios y otras aplicaciones.
Cuando un usuario ingresa una URL en su navegador, el servidor web en el que está alojada la página recoge esa petición, la procesa y devuelve al navegador del usuario el contenido solicitado (y todos los recursos incluidos en la página que estén ubicados en el servidor).
La comunicación entre el servidor y el navegador del usuario (cliente) se realiza generalmente mediante el protocolo HTTP o HTTPS.
Los servidores web funcionan principalmente sobre sistemas operativos basados Unix/Linux o Windows. Las aplicaciones y sitios web en producción suelen decantarse mayormente por servidores Unix/Linux, cuya estabilidad y rendimiento están fuera de toda duda.
De entre todos los servidores web que podemos encontrar, los principales y más utilizados son los siguientes:
- Apache: servidor web de código abierto, disponible para Unix/Linux, Windows y Mac Os X. Ha sido el servidor web de referencia durante muchos años.
- Nginx: software que puede actuar tanto de servidor web como de proxy. Al igual que Apache, es de código abierto y se encuentra disponible para Unix/Linux, Windows, Mac OS X.
- IIS (Internet Information Services): servidor web para Windows desarrollado por Microsoft.
- LiteSpeed: servidor web en auge, compatible con Apache y con rendimiento superior a este. Es un software propietario y de pago.
- Otros: Node.js, Tomcat, lighttpd…
LiteSpeed es de los más recientes y poco a poco se está haciendo un hueco en el mercado, sobre todo en el sector de los pequeños hostings optimizados para WordPress.
Los más empleados siguen siendo Apache y Nginx. De hecho, puesto que Apache es robusto y fiable pero tiene un rendimiento inferior a otros servidores web, es habitual encontrarse hoy en día con una combinación Nginx/Apache.
En este modo combinado de funcionamiento Nginx se encarga de proporcionar los ficheros y documentos estáticos de una página o aplicación web, dejando a Apache la interpretación, ejecución y devolución de las páginas que deben ser procesadas con algún lenguaje de servidor (como PHP, ASP, etc.).