La Web funciona siguiendo el denominado modelo cliente-servidor, habitual en las aplicaciones que funcionan en una red. Existe un servidor, que es quien presta el servicio, y un cliente, que es quien lo recibe.
Cliente web
El cliente web es un programa con el que el usuario interacciona para solicitar a un servidor web el envío de páginas de información. Estas páginas se transfieren mediante el protocolo HTTP.
Las páginas que se reciben son documentos de texto codificados en lenguaje HTML. El cliente web debe interpretar estos documentos para mostrárselos al usuario en el formato adecuado.
Además, cuando lo que se recibe no es un documento de texto, sino un objeto multimedia (vídeo, sonido, etc.) no reconocido por el cliente web, éste debe activar una aplicación externa capaz de gestionarlo.
Entre los clientes web (también conocidos como visualizadores o navegadores) más usuales están el Netscape Navigator y el Microsoft Internet Explorer. La mayoría de ellos soportan también otros protocolos, como el FTP (File TransferProtocol), para la transferencia de ficheros, y el SMTP (Single Mali Transfer Protocol), para el envío y la recepción de correo electrónico. La Figura mas abajo muestra una página web visualizada con el Internet Explorer.
Servidor web
El servidor web es un programa que está permanentemente escuchando ¡as peticiones de conexión de los clientes mediante el protocolo HTTR
El servidor funciona de la siguiente manera: si encuentra en su sistema de ficheros el documento HTML solicitado por el cliente, lo envía y cierra la conexión; en caso contrario, envía un código de error que cierra la conexión. El servidor web también se ocupa de controlar los aspectos de seguridad, comprobando si el usuario tiene acceso a los documentos.
Pagina web visualizada con el cliente web Microsoft Internet Explorer
Mensaje mostrado por el servidor web cuando no se encuentra la pagina solicitada
El proceso completo, desde que el usuario solicita una página hasta que el cliente web se la muestra con el formato adecuado, es el siguiente:
1. El usuario especifica en el cliente web la dirección (URL) de la página q desea consultar.
2. El cliente establece la conexión con el servidor web.
3. El cliente solicita la página deseada.
4. El servidor busca la página que ha sido solicitada en su sistema de ficheros, Si la encuentra, la envía al cliente; en caso contrario, devuelve un código] de error.
5. El cliente interpreta los códigos HTML y muestra la página al usuario.
6. Se cierra la conexión.
Es muy probable que la página solicitada no exista físicamente, sino que se cree en el momento de su petición (por ejemplo, combinando una plantilla de documento con los resultados de la consulta a una base de datos). En estos casos el servidor web cede el control al denominado servidor de aplicaciones, que es quien se encarga de construir la página. Una vez creada la pasa al servidor web, que a su vez la envía al cliente. El esquema general de la transferencia de páginas web es pues el que se muestra en la Figura siguiente.
Esquena de transferencia de paginas web
La conexión siempre se libera al terminar la transmisión de la página. Volviendo sobre el modelo de las aplicaciones cliente-servidor, se puede decir que se sigue el denominado modelo de transacciones: el cliente realiza una petición, el servidor la atiende e inmediatamente se cierra la comunicación. Las transacciones son, pues, independientes, y no se mantiene una memoria entre las sucesivas peticiones. Esto es un grave inconveniente para muchas aplicaciones en las cuales esta memoria es fundamental, como por ejemplo las operaciones de compra a través de la Web. No obstante, existen mecanismos para resolver el problema, como el uso de cookies o de bases de datos, y que se comentarán más adelante.
Otor aspecto importante es el hecho de que se establece una conexión impediente para cada documento u objeto que se transmite. Es decir, si una página contiene, por ejemplo, cuatro imágenes, entonces se establecen cinco conexiones independientes: una para la página propiamente dicha y otras cuatro para las imágenes.