Cliente, servidor y protocolo HTTP

En anteriores entradas, hemos visto que el HTTP es uno de los elementos constitutivos del servicio web en Internet, es lo que se conoce como el Protocolo de Transferencia de Hipertextos.

Como podemos ver en la imagen, el protocolo HTTP permite la comunicación entre el servidor WWW que es donde se almacenan todos los documentos, y el cliente WWW (navegador web) que es quien lo solicita. El servidor WWW dispone de todo el software necesario para poder traducir las direcciones que recibe por el HTTP en la ruta local de los archivos para enviarlo al cliente web (un navegador) que es quien lo pide.

Arquitectura cliente-servidor de un servicio www básico

El Servidor WWW

El Servidor WWW (servidor) es el que contiene las páginas web*  y atiende constantemente las peticiones del cliente www. Su tarea consiste en «escuchar» continuamente las peticiones provenientes de clientes.

Los requisitos de un servidor es que siempre deben estar encendidos, que dispongan de una dirección IP fija. Debe disponer de un software específico para servidores. Cualquier máquina puede ser un servidor, pero si el número de peticiones es muy grande, para que no se sature, necesitará una máquina más potente (capacidad de procesamiento, más memoria, más capacidad de almacenamiento en disco duro, etc.) También es probable que si el sitio web está muy solicitado se necesite más de un servidor, lo que se conoce en castellano como «Granjas de servidores» (server farms), el uso de varios servidores permite que actúen de manera escalar siendo el acceso más rápido y fiable para el cliente.

Como hemos visto hasta ahora, el servidor está constituido por dos elementos, por un lado la parte física que es donde se alojan las páginas web y por el otro la parte lógica que es el software que procesa y responde a las peticiones del cliente.

Ahora vamos a explorar un poco esta parte lógica.

Actualmente en el mercado existen numerosos programas que pueden hacer las funciones de servidor, pero hay algunos que históricamente han sido los más utilizados.

Hay dos programas que son utilizados mayoritariamente, uno pertenece al software libre como Apache y el otro Microsoft Internet Information Server, también conocido como IIS, (actualmente Windows Server), es software privativo perteneciente a gigante tecnológico Microsoft. 

El cliente WWW

El cliente www o navegador es un programa que se comunica con el servidor mediante una serie de reglas. El cliente web es un programa que sólo se comunica con el servidor de manera bidireccional, nunca entre clientes. Se caracteriza por realizar una petición al servidor de páginas web y por interpretar la respuesta del servidor web, es decir conocer las reglas del protocolo de comunicación HTTP e interpretar los contenidos que este le envía, utilizando por ejemplo, el HTML.

No necesita estar permanentemente conectados, ni necesita IP fijas en este caso pueden ser dinámicas.

Actualmente en el mercado hay diversos clientes web o navegadores en el mercado, la mayoría son gratuitos, pero esto no siempre ha sido así.

El primer cliente web fue creado por Tim Berners-Lee en el CERN, pero el primero que tuvo una cierta popularidad fue Mosaic concebido por la NCSA en 1992.

Como podemos observar en la imagen, su forma no difiere mucho de los actuales navegadores. Este navegador fue distribuido de manera gratuita, y su éxito fue tal que algunos miembros del equipo de la NCSA, viendo una oportunidad de negocio decidieron montar una empresa derivada con el nombre de Netscape.

Netscape trabajaba con servidores, y el mercado de los servidores estaba muy fragmentado, dominando ese espacio la todo poderosa IBM, en cambio el ámbito de los navegadores web estaba dominado por MOSAIC hasta que Netscape entró en acción y se hizo con el dominio (1995).

Entre 1997 y 1999 se vivió un período que se conoce como «la guerra de los navegadores«. Como hemos visto anteriormente, el objetivo del navegador es el de ordenar, estructurar y facilitar el acceso al contenido web alojado en los servidores, muy pronto los navegadores se convirtieron en índices o catálogos de servicios de internet, por lo que formar parte de un navegador como servicio destacado era algo económicamente muy rentable y por parte de las empresas, colocar su navegador en el mayor número de ordenadores posibles controlaría el negocio de la web.

Aunque de manera tardía, Microsoft se dio cuenta de esto, y lanzó su propio navegador Internet Explorer.

La competencia era desigual, Netscape dominaba el mercado, no existía ninguna regla más allá de las tradicionales, pero el mercado, en aquel momento en pleno auge de las .COM ya respondía a otras forma de hacer megocios.

Microsoft incluyó en la distribución de su sistema operativo Microsoft Windows el navegador Internet Explorer. Esto significaba que todo aquel que comprase un ordenador y se instalase el sistema operativo Windows ya tenía un navegador disponible, no necesitaban buscar un navegador, ya lo tenian. Esta estrategia supuso un gran impacto, avivó la guerra con Netscape y se consideró como un «abuso de posición dominante«, los jueces tomaron cartas en el asunto, pero curiosamente cuando se iban a pronunciar sobre el asunto, Netscape había desaparecido, fue comprada por AOL y en 1997 su código fue liberado ofreciéndolo bajo licencia de software libre dando lugar al surgimiento del proyecto Mozilla y de aquí el navegador Firefox.

Otro elemento de esta guerra de navegadores, y que sufrimos la mayoría de los que por aquel entonces nos iniciábamos en la creación de páginas web, era que cada uno de ellos inició una carrera de estandarización del HTML en paralelo a la promulgada por el W3C. Por un lado esta competencia fue muy beneficiosa debido a las continuas innovaciones, pero por otro lado los diseñadores debían elegir con qué navegador se podría ver la página. Muchos diseñadores web decidieron duplicar la web para que se visibilizasen correctamente en ambos navegadores, al mismo tiempo, los navegadores incentivaban a los creadores a posicionarse en uno u otro navegador, poco a poco Internet Explorer y sobre todo gracias al efecto red*, consiguió hacerse con el control absoluto de la web.

El protocolo HTTP

El protocolo utilizado en el servicio web tiene como nombre Protocolo de transferencia de hipertexto HTTP. Es un protocolo basado en texto en el que hay dos tipos de mensajes:

  • Los mensajes de petición enviado por el cliente al servidor
  • Los mensajes de respuesta que son enviados del servidor al cliente.

Estos mensajes de petición están compuestos por:

  • La línea con la petición en la que se debe especificar un método y un objeto. El método es la acción a realizar y el objeto es el objeto de la acción. No es nuestro objetivo pero simplemente mencionar que entre los métodos hay una clasificación entre seguros e inseguros. Los métodos seguros son aquellos que no modifican nada del servidor, simplemente solicitan información. Los inseguros si que cambian el estado el servidor, por consiguiente supone un riesgo de seguridad del servidor. De los primeros tenemos HEAD, GET, OPTIONS, CONNECT y TRACE, de los segundos POST, PUT i DELETE.
  • El encabezamiento permite enviar información adicional  sobre la petición, por ejemplo el navegador utilizado, el idioma, etc. De esta manera, el servidor adapta su respuesta a la petición. Puede haber encabezamiento o no.
  • Una línea en blanco.
  • El cuerpo del mensaje. Esto es opcional, cuando la petición tiene que ver con una página web no suele haber contenido, en cambio si se trata de un formulario o la subida de un archivo si tendrá contenido.

Los mensajes de respuesta enviado por el servidor tienen la misma estructura pero difieren en la primera línea, en lugar de ser un método y un objeto, el servidor envía un código numérico que indica el estado de la petición, a ese código numérico se le agrega un breve texto descriptivo. Los más comunes son:

Una de las ventajas de protocolo HTTP es que al construirse sobre texto, lo podemos leer y entender con facilidad, pero por otro lado, estas coversaciones que tenemos con el servidor entiendase el intercambio de preguntas y respuestas entre el cliente y el servidor pueden ser «escuchadas» por otros con la misma facilidad… lo que es una ventaja al mismo tiempo se convierte en una desventaja. Puede interesarnos que nadie pueda leer nuestras peticiones o respuestas del servidor como por ejeplo a la hora de realizar una transferencia bancaria o un pago con tarjeta, ver nuestros datos fiscales, etc.

Para solucionar este problema se ha implementado el protocolo HTTPS, el cual es la combinación del protocolo HTTP que ya conocemos y se ha utilizado hasta ahora con técnicas de encriptación, mediante este mecanismo nos aseguramos la confidencialidad de la transmisión y evitamos la suplantación. Como usuarios dela web, la única variación es que en lugar de poner HTTP, ahora pondremos HTTPS.

Y para finalizar una recomendación. El BOOM de Silicon Valley se trata de una serie ambientada en los años 90 en el que nos narra en 6 episodios, la historia de tres empresas (Netscape, TheGlobe, Pixelon) y de sus fundadores (James Barksdale, Jim Clark, Stephan Paternot y Todd Krizelman entre otros), que junto a sus éxitos y fracasos dieron lugar a lo que hoy es Internet… Google, Facebook y YouTube.

 

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información

ACEPTAR
Aviso de cookies
error: