Servidor web

Un servidor web o servidor HTTP, es un software que se ocupa de atender las peticiones de páginas web realizadas por los navegadores web (browser) mediante la URL, almacenando para ello documentos HTML y los archivos de imágenes, texto y demás recursos que conforman el contenido del sitio. También se denomina servidor web a la máquina en la que corre el servidor.

Servidor web

Qué es un servidor web

Un servidor Web, también llamado servidor HTTP, es un programa informático cuya función principal atender peticiones de páginas web de los clientes que utilizan el protocolo de transferencia de hipertexto (HTTP), por lo que entrega tanto los documentos HTML como cualquier otro contenido adicional que se puede incluir en un documento, como imágenes, videos, hojas de estilo CSS o scripts.

Respecto a cómo funciona el sistema, básicamente consta de las siguientes fases:

  • El servidor web se mantiene a la espera de las peticiones de los clientes, escuchando por defecto el puerto 80.
  • La comunicación con el servidor la inicia un agente de usuario, normalmente un navegador web (web crawler), al hacer una solicitud de un recurso específico utilizando el protocolo HTTP. El procedimiento consiste en teclear el nombre del sitio web en el navegador, de tal manera que éste realizará una petición HTTP al servidor web.
  • El servidor responde con el contenido de ese recurso, usualmente código HTML, o generando un mensaje de error si no puede hacerlo. El recurso solicitado generalmente, aunque no siempre, es un archivo almacenado en el servidor.
  • El cliente es el encargado de interpretar el código y visualizar la página, mediante formas, colores, disposición de textos y objetos del sitio web.

Así pues, un servidor web procesa conexiones HTTP de solicitud y respuesta entre el nodo servidor (recepción y respuesta) y el nodo cliente (solicitud), siendo el código recibido por el cliente ejecutado por un navegador web.

Aunque la función principal de un servidor web es servir contenido, el protocolo HTTP también permite enviar contenidos desde los clientes al servidor, función que se utiliza para subir formularios web o la carga de archivos.

Muchos servidores web son compatibles con scripts del lado del servidor, con PHP u otros lenguajes de script, función que por lo general se utiliza para crear documentos HTML de forma dinámica (on the fly) en lugar de devolver sólo documentos estáticos. Esta característica se usa principalmente para la recuperación o modificación de la información almacenada en la base de datos. Aunque la ejecución de un lenguaje interpretado como PHP puede ser más lenta que su equivalente en un lenguaje de bajo nivel, esto se puede minimizar en gran medida con técnicas de cache.

Además de transferir código HTML, los servidores web tienen la posibilidad de entregar aplicaciones web, que pueden ser de dos tipos:

  • Aplicaciones en el lado del servidor: el servidor web ejecuta la aplicación, que genera el código HTML que el servidor enviará al cliente por medio del protocolo HTTP. Las aplicaciones del lado del servidor pueden estar escritas en lenguajes de programación como PHP, ASP, Perl, Python o Ruby.
  • Aplicaciones en el lado del cliente: el encargado de ejecutarlas es el cliente web o navegador, de tal manera que la aplicación se ejecuta en la máquina del usuario. Para ello, es necesario el navegador disponga de soporte para ejecutar dichas aplicaciones. Las aplicaciones del lado del cliente pueden ser scripts escritos en Javascript o applets Java.

Los servidores web no sólo se utilizan para servir páginas web en Internet, sino que también se emplean a menudo incrustados en dispositivos tales como impresoras, routers o cámaras web como parte integrante del sistema de administración del dispositivo, que se realiza mediante una interfaz web. De esta manera, no es necesario instalar ningún software adicional en el equipo cliente, ya que sólo se requiere un navegador web para configurar el dispositivo.

Existen muchos servidores web, pero el más difundido es Apache, que junto con Linux (sistema operativo), MySQL/MariaDB (base de datos) y PHP (lenguaje de programación) forman LAMP, la solución más extendida en servidores web, debido a que es software libre, de código abierto y gratuito.