31 de enero de 2008

Como Funciona La Web¡?¡?

Internet es una de las maravillas del mundo moderno. Nos permite acceder a documentos que incluyen imágenes, gráficos, fotos, sonidos y video de manera sencilla, sin importar en qué parte del globo fueron publicados. Así mismo, nos mantiene en comunicación instantánea con el resto del planeta, para intercambiar ya sea un sencillo saludo, las últimas noticias o los más complicados archivos de un proyecto conjunto.
Como es de esperarse, existe una grande y organizada plataforma tecnológica que permite a esta maravilla moderna funcionar. Básicamente, Internet es un conjunto de millones de computadores interconectados sin que haya uno o un grupo de ellos que gobierne el sistema; cada computador está conectado a la red de manera independiente.
Para que todos estos computadores puedan coexistir y comunicarse efectivamente entre sí, deben ponerse de acuerdo. Con este objeto se han creado los protocolos, que son conjuntos de reglas y convenciones que han de adoptarse para ser entendido por los otros computadores de la red. Los dos protocolos más importantes son el Protocolo de Control de Transmisión (Transmission Control Protocol) y el Protocolo de Internet (Internet Protocol). Usualmente se trata a estos dos protocolos como uno solo, llamándolos TCP/IP. Un computador -sin importar que sistema utiliza, Linux, Windows u otro, o si es una PC o una Mac- puede comunicarse con cualquier otro si maneja estos protocolos.
Lógicamente, cada uno de los computadores que son parte de Internet no están conectados directamente con todos los demás; sólo con los más cercanos. Para tener acceso a una máquina alejada, se hace a través de las demás formando una especie de cadena. Para esto se utilizan los paquetes. Un paquete es un trozo de información (texto, imágenes, voz o cualquier otro) que está marcado, indicando quién lo envía y para quién es. Esta identicación se realiza mediante una Dirección IP, la cual es un número único que todo computador que es parte de la red posee. De este modo si un computador recibe un paquete que no es para él, lo reenvía al destinatario, o en su defecto, al computador más cercano a éste al que pueda acceder.
Sin embargo, no todos los computadores que están conectados a Internet tienen el mismo propósito o poseen las mismas capacidades. Una gran parte ni siquiera es parte de la red de manera permanente (por ejemplo, si está conectado vía módem). Por esto la Internet opera según el llamado modelo cliente-servidor.
Los servidores forman el esqueleto de la Internet. Un servidor es un gran computador dedicado a atender las peticiones de otros computadores, de allí viene su nombre. Estas peticiones pueden ser el envío de una página web o un archivo que se encuentra en su base de datos, o el establecimiento de una conexión con otra máquina. Por ejemplo, si tu escribe la dirección http://www.yahoo.com/, en realidad está contactando al servidor de Yahoo! y pidiéndole que le envíe la página web que tiene marcada como página de inicio.
Por lo general, el computador donde se encuentra un usuario como tu es un cliente. Los clientes son los computadores que realizan las peticiones a los servidores y reciben la información. Por eso los programas que tu utiliza para recibir información a través de la red como programas de correo electrónico, FTP, chat o navegadores web son conocidos como Aplicaciones del lado del Cliente (Client-side Applications).
Otra característica que tienen los clientes -que muy frecuentemente son computadores personales- es que pueden no ser parte permanente de la Internet. Si se encuentra en un lugar que no tenga una conexión dedicada (como la de la USB), tu debe llamar a un número telefónico y "conectarse" antes de tener acceso a la información guardada en la red. Lo que está haciendo es estableciendo una conexión con un servidor especial llamado Proveedor de Servicios de Internet (Internet Service Provider o ISP) que será su enlace directo al resto de los servidores del mundo. Esta conexión se realiza enviando impulsos mediante la línea telefónica, los cuales son interpretados según el Protocolo de Punto a Punto (Point to Point Protocol). De este modo, cuando tu ingresa a la red se le asigna una dirección IP temporal para que pueda comunicarse con otros computadores de la red.
Así que, supongamos que tu está chateando desde 7u computador -cliente- con una persona que se encuentra en cualquier otro punto del globo -en otro cliente-. tu escribe un mensaje y presionas la tecla <>. Entonces, tu programa de chat crea un paquete conteniendo el mensaje y que indica que debe ser entregado en la dirección IP del computador de tu amigo. Este paquete es enviado a su ISP, el cual a su vez lo envía por una serie de servidores hasta el ISP de su amigo, quien finalmente lo envía hasta el computador de su amigo para que éste pueda verlo en la pantalla.
De manera similar, cuando tu entras a una página web, se hace un pedido al servidor en el que la página reside. El servidor envía el código de ésta al navegador, quien lo interpreta para conocer cómo está estructurada la página, y dónde puede encontrar los otros componentes que la forman, como imágenes, música de fondo, animaciones, etc. Para esto, la página debe estar escrita en un lenguaje particular, conocido como Lenguaje de Marcaje de Hipertexto (Hyper-Text Markup Language), y que es el estándar internacional para la creación de páginas web.






La explicación de lo que sucede. Tomemos como ejemplo google.com:

  • Primero, nuestro ordenador manda una petición a la ICANN para encontrar el registrador de google.com
  • Nos responde diciéndonos que tenemos que utilizar un servidor que encontremos a través de whois.enom.com
  • Entonces, el navegador necesita encontrar qué servidores donde está alojado google.ocm puede utilizar whois -h whois.enom.com google.com
  • Una vez que el navegador descubre que el servidor a utilizar es ns1.google.com (entre otros) con una IP 216.239.32.10, debe profundizar 216.239.32.10 www.google.com para encontrar el host adecuado para mostrar la página
  • La respuesta es 64.233.187.99, entre otros
  • Ya tenemos la información adecuada para enviar un petición GET a esa IP y recibir la información necesaria para mostrar la página.

Y todo eso cada vez que cargamos una página.