¿Qué es un servidor web?
Los servidores web sirven para almacenar contenidos de Internet y facilitar su disponibilidad de forma constante y segura. Cuando visitas una página web desde tu navegador, es en realidad un servidor web el que envía los componentes individuales de dicha página directamente a tu ordenador. Esto quiere decir que para que una página web sea accesible en cualquier momento, el servidor web debe estar permanentemente online.
Toda página accesible en Internet necesita un servidor especial para sus contenidos web. A menudo, las grandes empresas y organizaciones cuentan con un servidor web propio para disponer sus contenidos en Intranet e Internet. Sin embargo, la mayoría de administradores recurren a los centros de datos de proveedores de alojamiento web para sus proyectos. Independientemente de si tienes un servidor web propio o de si alquilas uno externo, siempre necesitarás un software para gestionar los datos de tu página y mantenerla actualizada. En este sentido, tienes la posibilidad de elegir entre varias soluciones de software para servidores web diseñadas para diferentes aplicaciones y sistemas operativos.
Servidor web: definición e historia
Los servidores web (también conocidos como servidores HTTP) son un tipo de servidores utilizados para la distribución (entrega) de contenido web en redes internas o en Internet (“servidor” hace referencia al verbo “servir”). Como parte de una red de ordenadores, un servidor web transfiere documentos a los llamados clientes (del inglés clients), por ejemplo, una página web a un explorador. En general, la pregunta “qué es un servidor web” puede referirse a dos cosas: al software del servidor (es decir, al programa en sí) y al equipo en el que el software del servidor web se está ejecutando. Cuando se trata de este último, se habla del host (un host puede alojar múltiples soluciones de software para servidores web). A continuación, nos referiremos explícitamente a alguno de estos significados, ya sea al software de servidor web/software servidor HTTP (o programa) o al host. El desarrollo de los servidores web está estrechamente vinculado al físico e informático británico Tim Berners-Lee, quien en 1989 sugirió que el intercambio de información en el CERN (Organización Europea para la Investigación Nuclear) debería realizarse a través de un sistema de hipertexto más fácil y rápido. En 1990, junto con Robert Cailliau, presentó un proyecto a partir del cual y con el paso del tiempo, junto con el primer servidor web, llamado “CERN httpd”, también se creó el primer navegador web y otros elementos básicos de Internet como HTML y HTTP. Es así como Berners-Lee es hoy considerado el fundador de Internet.
La tecnología detrás de los servidores web
Principalmente, el software de un servidor HTTP es el encargado de proporcionar los datos para la visualización del contenido web. Para ello, el programa se comunica con un cliente web (por lo general, un navegador o un crawler de los motores de búsqueda).
Para abrir una página web, el usuario solo tiene que escribir el URL correspondiente en la barra de direcciones de su navegador web. El navegador envía una solicitud al servidor web, quien responde, por ejemplo, entregando una página HTML. Esta puede estar alojada como un documento estático en el host o ser generada de forma dinámica, lo que significa que el servidor web tiene que ejecutar un código de programa (p. ej., Java o PHP) antes de tramitar su respuesta. El navegador interpreta la respuesta, lo que suele generar automáticamente más solicitudes al servidor a propósito de, por ejemplo, imágenes integradas o archivos CSS.
El protocolo utilizado para la transmisión es HTTP (o su variante cifrada HTTPS), que se basa, a su vez, en los protocolos de red IP y TCP (y muy rara vez en UDP). Un servidor web puede entregar los contenidos simultáneamente a varios ordenadores o navegadores web. La cantidad de solicitudes (requests) y la velocidad con la que pueden ser procesadas depende, entre otras cosas, del hardware y la carga (número de solicitudes) del host. Sin embargo, la complejidad del contenido también juega un papel importante: los contenidos web dinámicos necesitan más recursos que los contenidos estáticos.
La selección del equipo adecuado para el servidor y la decisión de si este debe ser dedicado, virtual o en la nube, se debe hacer pensando siempre en evitar sobrecargas en el servidor. Recuerda que, aunque hayas encontrado un servidor web que se adapta perfectamente a las necesidades de tu proyecto, siempre se corre el riesgo de que se presenten fallos en él como consecuencia de imprecisiones técnicas o cortes de energía en el centro de datos del host. Aunque no es muy frecuente, durante un período de inactividad de este tipo (downtime), la web no estará disponible a menos que se ejecute en un dispositivo con una conexión a una Content Delivery Network, algo no muy usual en el caso de webs pequeñas.
Otras funciones de los servidores web
Aunque su principal función es la transferencia de contenido web, muchos programas de servidor web ofrecen características adicionales:
Seguridad | Cifrado de la comunicación entre el servidor web y el cliente vía HTTPS |
Autenticación del usuario | Autenticación HTTP para áreas específicas de una aplicación web |
Redirección | Redirección de una solicitud de documento por medio de Rewrite Engine |
Caching | Almacenamiento en caché de documentos dinámicos para la respuesta eficiente de solicitudes y para evitar una sobrecarga del servidor web |
Asignación de cookies | Envío y procesamiento de cookies HTTP |
Además del software del servidor, un host puede contener otro tipo de programas, como por ejemplo un servidor FTP para la carga de archivos o un servidor de base de datos para contenidos dinámicos (aunque para este propósito, cualquier host profesional ofrecerá un hardware adicional). En general, existen diferentes tipos de servidores web que pueden ser utilizados para numerosos propósitos, por ejemplo, los servidores de correo, los servidores de juegos o los servidores proxy.
Soluciones de software libres para servidores web
La gama de programas para ejecutar un servidor web es muy amplia y algunos están disponibles de forma gratuita en Internet. La única condición es, obviamente, que el software sea compatible con el sistema operativo del host. La mayoría de los servidores web están basados en UNIX, es decir Linux, pero también se ejecutan en Windows, a excepción de Windows IIS, que solo es ejecutable en servidores Windows. A continuación describimos brevemente algunos de los programas más populares para servidores web:
- Servidor Apache HTTP: el servidor web Apache se desarrolla permanentemente como un programa de código abierto disponible en numerosas versiones. Este programa modular es ejecutable en prácticamente cualquier sistema operativo y es el servidor web más utilizado. Es apropiado para contenidos web dinámicos, pues facilita la integración de lenguajes de programación como PHP y Apache puede ejecutar otros programas bajo la interfaz CGI. Para facilitar la instalación de un servidor web Apache, que puede resultar muy compleja, se pueden utilizar soluciones de software como XAMPP o LAMP, que se encargan en gran medida de su configuración. Además de Apache, estas soluciones contienen también diversos lenguajes de programación, así como el software más adecuado para la gestión de bases de datos.
Últimamente, en comparación con sus competidores, Apache HTTP ha perdido puntos en cuanto a velocidad. Muchos productos alternativos se caracterizan ya por unos tiempos de respuesta más cortos durante la transmisión de datos.
- Apache Tomcat: en este caso se trata de un servidor web de código abierto desarrollado en el entorno Java. Quien quiera crear contenidos web con Java, encontrará en Apache Tomcat la solución idónea. También es posible integrar otro servidor por medio de un conector AJP (p. ej., un servidor Apache HTTP o Microsoft IIS).
- nginx: nginx va más allá de un tradicional servidor web de código abierto. Ofrece, entre otras cosas, un proxy inverso para reducir la carga del servidor y permitirle trabajar más rápido. En el pasado, nginx nunca dejó de ganar popularidad. Para obtener más información al respecto, visita nuestra introducción a nginx.
- Microsoft IIS: Microsoft Internet Information Services (IIS) es un paquete de software de servidor que incluye un servidor web. En sus comienzos, IIS era una parte integral de los sistemas de Windows Server, ahora, en caso de ser necesario, es posible instalar el programa en algunos sistemas operativos Windows. Microsoft IIS solo puede ser utilizado en servidores Windows.
- LiteSpeed Web Server: este software de servidor web para UNIX y Linux cuenta con un programa de código abierto, una versión gratuita y una versión empresarial. LiteSpeed Web Server se destaca por su alta velocidad en la transmisión de datos, especialmente en su versión para empresas.
Por lo general, la administración de un software de servidor web se hace de forma remota desde otro equipo, controlándolo a través de un software de acceso remoto que no necesariamente requiere el mismo sistema operativo del host. Uno de los programas más reconocidos de este tipo es Plesk, un software que permite gestionar sistemas UNIX, Linux y Windows desde cualquier equipo. En otras palabras, Plesk permite controlar un servidor web Linux desde un equipo Windows y viceversa.
Cómo encontrar el servidor web apropiado y configurarlo
Si quieres conseguir un servidor web para tu proyecto online, lo primero que necesitarás es un host con suficiente espacio web. Una de las opciones más populares es alquilar los recursos del servidor en algún proveedor. Especialmente aquellos usuarios con pocos o ningún conocimiento en gestión de servidores pueden decantarse por opciones como el alojamiento compartido o el managed cloud hosting y configurar así su propio servidor web. A diferencia de los servidores con acceso root, en los que el usuario no solo tiene todos los derechos de acceso, sino también la responsabilidad completa de la seguridad del servidor, con un alojamiento gestionado el host se encarga de gran parte de la administración básica. Aquí, el usuario no tiene que hacerse cargo de aspectos como las actualizaciones del software y de seguridad y puede, adicionalmente, equipar a su servidor con los programas que desee. En el hosting compartido no tienes que preocuparte por las actualizaciones de software y, además, tienes acceso al espacio web y a las opciones de configuración proporcionadas por el proveedor que elijas. Normalmente, los servidores web se alquilan por una cuota mensual. Los costes dependen del rendimiento y del tamaño de componentes individuales como, por ejemplo, la capacidad y el rendimiento del ordenador (CPU y RAM), el espacio web y el tipo de almacenamiento en el disco duro (SSD o HHD). Quien quiera flexibilidad para la capacidad de su servidor web debería decantarse por el alojamiento en la nube. Con este, el rendimiento de los componentes puede ser modificado para adaptarse a las necesidades actuales del proyecto online en cualquier momento. El rendimiento por parte de los diferentes componentes del host depende de las necesidades de la página web. Un pack de alojamiento económico y con menor rendimiento resulta perfecto para proyectos como un pequeño blog o una web que sirva como tarjeta de visita en Internet. Por el contrario, grandes portales online o páginas web con muchos contenidos demandan muchos más componentes. También hay que considerar que ciertas aplicaciones web requieren un volumen de transferencia de datos mayor que otras: para que la transferencia de archivos no sea más lenta de lo normal, aquellas plataformas que ponen a disposición la descarga de contenidos necesitan una mayor velocidad en términos de tráfico de datos. Por otro lado, si una web implementa muchos archivos multimedia como vídeos o música, el volumen de tráfico debe ser apropiado, de lo contrario se sobrecarga al servidor. Es por esto que, para prevenir estos escenarios, es necesario elegir una tarifa de tráfico ilimitado con el proveedor escogido. Así, estarás garantizando que el tráfico de datos de tu web siempre goce de la capacidad que necesita. Una vez has encontrado el servidor apropiado para tu proyecto, puedes configurar el software HTTP correspondiente. Recuerda que aun utilizando un servidor gestionado, tendrás que ocuparte de ciertos aspectos de seguridad que no podrás perder de vista para el alojamiento de tu web.
Una vez has elegido y configurado tu servidor web, has de mantenerlo actualizado. Las versiones desactualizadas representan una oportunidad de ataque para cibercriminales y piratas informáticos que, en el peor de los casos, podrían tomar el control sobre tu servidor web. En el hosting compartido y gestionado, los proveedores suelen encargarse de la mayoría de medidas de seguridad, de otro modo, esta tarea está completamente en tus manos.
Además de las actualizaciones permanentes, la implementación de un cortafuegos por hardware resulta de gran ayuda a la hora de proteger tu sistema de intrusiones. Establecer una zona desmilitarizada (DMZ) es también muy útil. Además, existen frameworks como Fail2ban que te ayudan a proteger tu servidor de accesos no autorizados. Otro de los principios de la seguridad de un servidor web es asignar a su administrador únicamente aquellas funciones que sean absolutamente necesarias o bien cerrar todos los puertos y cancelar los servicios innecesarios. Adicionalmente, crear y usar contraseñas seguras es una de las medidas básicas de seguridad para el cuidado de un servidor. Recuerda que es importante contar con un soporte al cliente eficiente, fiable y cualificado, así, en caso de que surjan preguntas o se presenten situaciones de emergencia no estarás a la deriva. Esto resulta de gran ayuda especialmente para los administradores menos experimentados. Si tu proveedor de alojamiento no se encarga completamente de la protección de tu servidor web, seguramente necesitarás cierto know how para gestionar y mantener tu servidor, así como conocimientos básicos en el funcionamiento de un host. Una alternativa para hacerte cargo consiste en aprender del ensayo y error con un servidor en una red cerrada donde no tengas que preocuparte de ningún tipo de ciberataque por parte de terceros.
¿Cómo opera un servidor web?
Los servidores web funcionan bajo el modelo cliente-servidor. Por ejemplo, si para visitar la página de inicio de IONOS introduces el dominio “www.ionos.es” en la barra de direcciones de tu navegador, tendrá lugar el siguiente proceso:
- Tan pronto como comienzas a escribir la dirección en la barra de direcciones, tu navegador envía la información a un servidor de nombres de dominio (también conocido como servidor DNS). Como parte fundamental del Domain Name System (DNS), el directorio central en Internet, un servidor de nombres de dominio tiene acceso a la agenda completa de direcciones en Internet. A continuación, el nombre alfanumérico del dominio (www.ionos.es) se convierte en una dirección IP numérica (217.160.72.6) y se envía de regreso al navegador.
- Acto seguido, el navegador realiza una solicitud de los contenidos de la página web. Esto se hace contactando al servidor web con la dirección IP numérica obtenida en el
- El servidor web responde a la petición enviando un documento de la página web solicitada al navegador. Posteriormente, el navegador envía nuevamente una solicitud al servidor web, esta vez para otro documento que también forma parte de la web solicitada. Este proceso se repite hasta que todos los elementos se han transferido y la web se muestra completamente en el navegador. Ahora bien, si haces clic en uno de los enlaces de la página de inicio de IONOS, se realizará una nueva solicitud al servidor web, iniciando nuevamente el proceso.
¿Sientes que no tienes la suficiente información o conocimientos sobre un servidor web y prefieres alquilarlo? Independientemente de si se trata de un servidor dedicado, un servidor en la nube o un servidor virtual, IONOS tiene la solución óptima para tu proyecto online. Descubre más sobre nuestra gama de productos en IONOS Shop.