Chapuzas en la administración pública

Hace un rato he ido a hacerle una visita a mi madre que trabaja en la oficina de comercio de Calpe. Me quería preguntar una cosa sobre cómo se le veia un archivo pdf y me he dado cuenta que estaba trabajando por terminal server atacando una máquina que no está en su oficina y por lo pésimamente que iba con un ancho de banda irrisorio. Para que os hagais una idea de lo que le toca sufrir todos los días, se le ha cargado un pdf incrustado en el navegador y sólamente para mover el scroll vertical era un suplicio.

Total que le he dicho que por lo menos para navegar por internet, ya que no tiene que manejar datos del trabajo que utilice el navegador que tiene instalado en local que es ie, faltaría más, y que para lo otro como no tiene más remedio que siga sufriendo con el terminal server. ¡Que remedio le queda!

Cheli

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