El chino (que todo software lleva dentro) I: El navegador

Cuando intentamos explicar cómo funciona un cacharro que utilizamos diariamente muchas veces no somos capaces, simplemente sabemos que funciona y por eso muchos suelen decir «eso es un chino que hay dentro y que hace que ande».
Con este apunte empiezo una serie donde voy a intentar explicar de forma sencilla como funcionan muchos de los programas que solemos utilizar.

Hoy le toca el turno al navegador, el título no es muy acertado ya que voy a explicar lo que sucede cuando navegas y esto implica la parte cliente que es el navegador y la parte servidora que es el servidor web.

Bueno empecemos, cuando metemos una dirección en el navegador, pongamos como ejemplo http://www.chelipinedaferrer.com, lo primero que sucede es que esa dirección hay que resolverla y convertirla en una dirección ip, una dirección ip no es mas que un numerito que se le asigna a cada máquina en internet. Podríamos decir que lo primero que hay que hacer es llamar a un sistema de guía telefónica y preguntarle, a ver ¿este nombre que número de teléfono tiene? y a partir de ese momento ya podemos llamarle.

En términos de redes se dice que se llama al servidor DNS (sistema de guía telefónica en la metáfora) pasándole una URL (dirección de internet que correspondería al nombre a buscar en la guía) y este nos contesta devolviéndonos una dirección ip (número de teléfono). Esto lo realiza el sistema operativo por debajo de forma que nosotros no nos damos ni cuenta de este paso.

Una vez que el navegador sabe donde tiene que llamar lanza una petición sobre un protocolo que se llama http al servidor web solicitando la página. En el servidor pueden pasar varias cosas, si es una página estática lo que significa que no tiene que hacer gestiones en el servidor, el servidor nos va a mandar un archivito que típicamente va a ser un archivo html. Una vez que al navegador le llega ese archivo va a ir interpretándolo y pintando la página. ¿Por qué digo interpretandolo? pues porque ese archivo utiliza un lenguaje de marcado, va poniendo marcas donde indica que cosas contiene, puede tener una marca que indique que ahí hay que colocar una imagen, puede tener marcas que indican que texto hay que colocar, que hay que señalar un texto como un enlace, etc. Cuando al interpretar el archivo vea que requiere colocar un documento, digamos la imagen, esta tendrá que solicitarla al servidor y descargarla para acto seguido colocarla en el lugar que indicaba la marca.

Bueno, pues una vez interpretado todo el documento y pintada la página ya está todo hecho.

¿Por qué se dice que un navegador es más rápido que otro? porque hay navegadores que son capaces de interpretar y pintar la misma página más rápidamente que otros.

Aún nos quedaría por explicar una última cosa, ¿qué sucede cuando la página que solicitamos es una página dinámica, por ejemplo cuando rellenamos un formulario web y mandamos datos al servidor? Cuando sucede esto, lo que significa es que el servidor antes de nada va a hacer una serie de transformaciones para posteriormente armarnos una página html y enviarnosla igual que hacía en el caso anterior, este tipo de transformaciones pueden ser como acabo de comentar que nosotros le mandemos unos datos y el servidor haga una llamada a una base de datos para almacenarlos o por poner otro ejemplo que le pidamos unos datos al servidor, él los consulte de una base de datos y arme una página web html con esos datos para mandarnosla y que nosotros podamos visualizarlos. En definitiva, que va a necesitar realizar ciertas operaciones internas antes de generar una página html y enviarnosla, por lo demás el procedimiento es el mismo.

Todavía quedaría por explicar las tareas que le corresponden al navegador como plataforma de desarrollo como podría ser las funciones javascript tan comunes hoy en día, la interpretación de hojas de estilo en cascada o css y demás pero creo que sería complicarlo ya demasiado.

Bueno espero que ahora entendáis mejor lo que ocurre cuando navegáis por internet.

Cheli

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.