A diario visitamos sitios web y nunca nos hemos parado a pensar ¿cómo funciona un sitio web? ¿qué sistemas intervienen? Pues con este artículo pretendemos dar una visión general de su funcionamiento, veremos las partes de las que se compone y cómo trabaja un sitio web.
Comenzamos por enumerar todas las partes que intervienen en el sistema.
- Desarrollo web
- Navegador
- Dominio
- Sistema DNS
- Protocolo HTTP
- Servidor web
Desarrollo web
Es una parte parte fundamental. El desarrollo web se encarga de dar funcionalidad y se puede dividir en dos grandes bloques Front-end y Back-end.
El Front-end o también llamado interfaz de usuario se encarga de eso mismo, de interactuar con el usuario para recoger datos e información. Es la parte que se muestra a través del navegador web. Para mostrar la información al usuario se apoya en lenguajes como HTML, CSS y JavaScript. De los tres lenguajes o pseudolenguajes, el más importante es el HTML. Es el pilar que sostiene a los sitios web. Sin el HTML no existiría la web como la conocemos a día de hoy. CSS y JavaScript ayudan a que la presentación que se hace en los navegadores sea mucho más amigable en términos de usabilidad y diseño. De hecho podemos crear un sitio web, estático, con solo HTML.
Los datos recogidos son transformados para que el Back-end lo entienda y pueda tratarlos de forma adecuada.
Por lo tanto el Back-end es el encargado de recoger la información captada del usuario a través del Front-end y tratarla. Se ejecuta en el servidor y se utilizan multitud de lenguajes de programación de alto nivel para crear el Back-end, por citar los más importantes PHP, Java, C# y uno muy de moda en la actualidad es Ruby. Luego existen ciertos lenguajes que, aunque se ejecutan en el servidor, están a medio camino entre el Back-end y Front-end como son ASP (Active Server Pages) de Microsoft y JSF (JavaServer Faces) de Java. Estos dos lenguajes se encargan de mostrar las páginas webs con los datos que reciben de C# o Visual Basic para ASP y de Java para JSF.
El Back-end utiliza la información recibida para ser almacenada en una base de datos, para comprobaciones, para realizar operaciones matemáticas, validaciones, etc… Cuando termina el proceso lo más normal es que mande una respuesta al Front-end, generalmente en forma de HTML para que se muestre en el navegador. En ningún momento el código que está en el servidor escrito en estos lenguajes de alto nivel es visualizado por el usuario.
Navegador
Como ya hemos comentado con anterioridad el navegador es el que nos muestra el Front-end. Nos permite interactuar con la aplicación web recogiendo datos y acciones para ser transmitidas al Back-end. Un ejemplo claro es un formulario donde rellenamos los campos y estos son enviados cuando realizamos la acción de pulsar el botón enviar. Existen muchos navegadores pero los más importantes son Internet Explorer (Microsoft), Chrome (Google), Firefox (Mozilla) y Safari (Apple).
El navegador es capaz de compilar o interpretar el código HTML, CSS y JavaScript para mostrarnos una versión gráfica del código. Si miramos una página web de un sitio y en cualquier navegador pulsamos botón derecho, ver código fuente, podremos ver que es un HTML e incluso el CSS y JavaScript.
Dominio
El dominio es el nombre del tipo «miempresa.com» que nos permite identificar un sitio web de una manera fácil para los humanos, algo fundamental. Siempre nos hemos fijado mucho en el dominio de una web, que sea corto, fácil de recordar y que transmita algo.
En la actualidad todo esto se va perdiendo poco a poco. Por un lado cada vez quedan menos dominios libres, podéis mirar en cualquier empresa de hosting y probar a buscar un dominio que se os ocurra, es bastante complicado que esté libre si son palabras de uso común.
Por otro lado los buscadores nos ahorran el tener que memorizar los dominios que te interesan. Ahora cuando vas a buscar una página web y no te acuerdas del dominio, accedes a Google y preguntas por un nombre. El te va a dirigir al dominio que estás buscando y esto hace que cada vez sea menos importante el tema del naming en los dominios.
DNS
El DNS Sistema de nombres de dominio (Domain Name System) es el sistema que se encarga de vincular a cada dominio con una IP Protocolo de Internet (Internet Protocol).Imaginaros que en vez de recordar los dominios tuviéramos que recordar las IPs. Sería insostenible y probablemente Internet no hubiera sido la revolución que es a día de hoy.
El DNS no es más que una base de datos distribuida es decir, hay multitud de bases de datos en todo el mundo que son replicas unas de otras. Es sistema funciona de la siguiente manera. Cuando tu escribes el dominio en el navegador, lo primero que hace es comprobar si lo tienes en la caché de tu navegador. Si se trata de una página web que visitas a menudo probablemente esté, de lo contrario se dirige a un servidor DNS donde va a buscar ese nombre. Cuando se localiza el nombre se comprueba que IP tiene ese dominio y te redirige al servidor configurado con esa IP.
Es común en los sitios web cambiar de servidor por motivos de escalabilidad o por motivos económicos. En estos caso lo que ocurre es que se notifica a los DNS que el dominio miempresa.com ha cambiado de IP y por lo tanto en cuestión de segundos se actualizan todas las bases de datos y cuando se vuelva a solicitar visitar la página web, se redirigirá al nuevo servidor.
Por norma general el sevidor DNS lo proporciona el proveedores de Internet que tengas contratado. Una manera de saber que servidor de DNS se está utilizando en Windows es acceder a la consola y escribir ipconfig /all. Te mostrará todos los datos de tu conexión y los servidores DNS que estás utilizando.
HTTP
Protocolo de Transferencia de HiperTexto (HyperText Transfer Protocol) es el protocolo de comunicación por excelencia en Internet. Son las normas y reglas que permiten la transmisión de archivos HTML. Gracias a él se pueden comunicar el navegador que tenemos en casa con el servidor que no sabemos ni donde está.
Existe un protocolo seguro que blinda los datos transmitidos por Internet para que ningún desalmado haga un mal uso de los datos robados. Es el protocolo HTTPS. Este protocolo cifra los datos para que si alguien intercepta la información, no pueda entender que se está transmitiendo. Es muy común encontrarlo en tiendas virtuales y formularios, donde la información sensible se transmite muy frecuentemente.
Por lo tanto este protocolo es una parte fundamental en el sistema que engloba a un sitio web.
Servidor web
El servidor web es la unidad de almacenamiento de los HTML, CSS, JavaScript e imágenes y también se encarga de interpretar los lenguajes de programación que se utilizan en el Back-end. No deja de ser un software instalado en un ordenador. Este ordenador o máquina tiene unas características especiales que lo hacen más fiable, seguro, con gran capacidad y potente. Nosotros mismos podemos tener un servidor montado en nuestra casa, un servidor que nos sirva para hacer pruebas y aprender a programar aplicaciones web.
El servidor, como ya hemos comentado, tiene asignada una IP para que pueda ser fácilmente identificado por los servidores de DNS. Normalmente este servicio lo ofrecen las compañías de Hosting, que a cambio de una tarifa mensual o anual nos ofrecen un servicio para alojar nuestros sitios webs en sus servidores. Dependerá del lenguaje de programación que utilicemos en el Back-end elegir un tipo de servidor u otro. Aunque en la actualidad parece que las grandes compañías, como Microsoft, están intentando liberar y estandarizar sus productos, todavía nos queda mucho camino por recorrer para llegar a un entendimiento entre las diferentes plataformas.
Pues como habéis podido leer este es el sistema que se utiliza cada vez que queremos ver un sitio web o página web. Es interesante saber como funcionan las cosas, nunca está demás interesarse por la tecnología que utilizamos todos los días.