Aunque es común usar los términos Web, Red e Internet de forma indistinta, desde el punto de vista técnico son cosas completamente diferentes:
- Internet hace referencia a la red física que conecta diferentes dispositivos y lugares. Se ocupa de los protocolos de transmisión (TCP/IP), la gestión de nombres de dominio y direcciones IP, etc.
- La Web se refiere a la arquitectura lógica de la información que se ha desarrollado sobre esa red física.
Confundir Web con Internet es como confundir el cerebro con el conocimiento que posee una persona.
Todos tenemos casi el mismo material neuronal, pero los conocimientos e información que posee cada cual difieren bastante.
Desde la aparición de los smartphone o teléfonos "inteligentes", ya no necesitas estar sentado delante de un ordenador para navegar por Internet y visitar sitios web, por lo que se ha convertido en algo cotidiano.
¿Cómo funciona una página web?
Cuando accedes a un sitio web desde el navegador de tu dispositivo suceden muchas cosas de las que no te das cuenta. Y es posible que te hayas preguntado:
- Dónde están los archivos HTML que estás viendo.
- Cómo se comunica tu dispositivo con el sitio web.
- Qué tecnologías intervienen en el proceso.
Un sitio web es un sistema que debe estar muy bien engranado para que funcione correctamente. Está compuesto por las siguientes partes:
- Desarrollo web
- Navegador (cliente)
- HTTP
- Dominio
- DNS
- Servidor web
Arquitectura
Para que la Web funcione, se requiere de una red que provea la funcionalidad que permita que cualquier dispositivo conectado a Internet pueda conectarse a un servidor identificado por la URL (Localizador Uniforme de Recursos) utilizada. Parte de esa funcionalidad la provee el ISP (Proveedor de Servicios de Internet), otra parte la provee tu dispositivo y otra el servidor web de destino.
La arquitectura Internet divide esta funcionalidad en cuatro servicios:
- Traducción del nombre de dominio a dirección IP (DNS) Este es el servicio inicial que se invoca para traducir un nombre de dominio comprensible para las personas (como www.academiaweb.online) a una dirección IP comprensible para las máquinas (como 192.168.50.30), que es un número único requerido para poder llegar al dispositivo destino. La operación requiere de varios servidores de nombres (DNS) que responden por cada dominio. Este servicio es provisto en parte por el ISP, quien debe disponer de un servidor de nombres inicial a quien enviarle nuestras consultas, y en parte por servidores por cada dominio.
- Conexión y Transporte (socket) Una vez obtenida la dirección IP del servidor establecemos una conexión con él, que permite enviar y recibir datos en forma fiable. Esto se hace a través de un socket, que es la parte más compleja del sistema porque implementa un protocolo de corrección de errores que permite transmitir información sobre una Internet que pierde datos, que los desordena y a veces incluso los duplica. La inteligencia del socket radica sólo en los extremos de la conexión: el navegador y el servidor. El resto de la red no interviene en este servicio, y eso es fundamental para mantener a Internet como un servicio barato y eficiente.
- Enrutamiento de paquetes IP El servicio básico que debe proveer un ISP es el enrutamiento de los datos que circulan entre el cliente y el servidor, que van en paquetes separados los unos de los otros y que deben pasar a través de varias redes que pueden estar en países y continentes diferentes.
- Protocolo HTTP Gobierna el diálogo que se establece entre el navegador y el servidor web una vez que están conectados. El protocolo permite intercambiar contenidos de todo tipo, como texto, imágenes, audio, video, etc. Toda la web está basada en HTTP.
En resumen, el navegador envía una URL al servidor, quien le responde con el contenido almacenado para esa URL de manera que el navegador lo interprete y decida qué hacer con éste.
Cliente y Servidor
Los dispositivos conectados a la Web se dividen en clientes y servidores.
- Los clientes son dispositivos de los usuarios conectados a Internet (por ejemplo, tu ordenador conectado a la red Wi-Fi o el teléfono conectado a la red de telefonía móvil) y el software que se encuentra disponible y permite acceder a Internet en dichos dispositivos (normalmente, un navegador web como Firefox o Chrome).
- Los servidores son ordenadores que almacenan páginas web, sitios o aplicaciones. Cuando un dispositivo cliente quiere acceder a una página web, una copia de la página web se descarga desde el servidor en el equipo cliente y se mostrará en el navegador web del usuario.
Los datos se envían desde el servidor al cliente en forma de paquetes. Esto significa que los datos se envían a través de la Web como miles de trozos pequeños, permitiendo que muchos usuarios pueden descargar la misma página web al mismo tiempo.
Desarrollo Web
El desarrollo web se encarga de dar funcionalidad y se puede dividir en dos grandes bloques Front-end (se ejecuta en el cliente y es lo que ve el usuario) y Back-end (se ejecuta en el servidor).
El Front-end o interfaz de usuario se encarga de interactuar con el usuario para recoger datos e información. Es la parte que se muestra a través del navegador web. Se apoya en lenguajes como HTML, CSS y JavaScript. Los datos recogidos son transformados para que el Back-end 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 como PHP, Java, C#, Ruby.
El Back-end (servidor) 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 (cliente), generalmente en forma de HTML, para que se muestre en el navegador.
El navegador es el que te muestra el Front-end. Te permite interactuar con la aplicación web recogiendo datos y acciones para ser transmitidas al Back-end. Un ejemplo es un formulario donde rellenamos los campos y estos son enviados cuando realizamos la acción de pulsar el botón enviar.
El navegador es capaz 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 qué es un HTML e incluso el CSS y JavaScript.
Protocolo 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 tienes en tu dispositivo con un servidor que no sabes ni donde está.
La versión segura del protocolo, HTTPS, cifra los datos para que si alguien intercepta la información, no pueda entender qué se está transmitiendo.
Desde hace un tiempo, los navegadores, sobre todo Google Chrome, te avisan cuando vas a entrar a un sitio que potencialmente inseguro.
Así que es imprescindible disponer de un certificado de seguridad e implementar el protocolo HTTPS para cualquier web, sobre todo si se trata de un comercio electrónico o un sitio que transmita información sensible
Por lo tanto este protocolo es una parte fundamental del sistema que engloba a un sitio web.
Dominio de Internet
Un dominio de Internet es una red de identificación asociada a un grupo de dispositivos o equipos conectados a la red Internet.
El propósito principal de los nombres de dominio en Internet y del sistema de nombres de dominio (DNS), es traducir las direcciones IP de cada nodo activo en la red, a términos fáciles de recordar.
Esto hace posible que cualquier servicio de red pueda moverse de un lugar geográfico a otro en la red Internet, aun cuando el cambio implique que tendrá una dirección IP diferente.
Sin la ayuda del sistema de nombres de dominio, los usuarios de Internet tendrían que acceder a cada servicio web utilizando la dirección IP del nodo (por ejemplo, sería necesario utilizar http://192.0.32.10 en vez de http://ejemplo.com).
El nombre de dominio nos permite identificar un sitio web de una manera fácil para los humanos.
DNS
El Sistema de nombres de dominio (Domain Name System) es el que se encarga de vincular a cada dominio con una dirección IP (Internet Protocol).
Las direcciones web reales (IP) no son las agradables y fácilmente recordables secuencias que tecleas en la barra de direcciones para encontrar tus sitios web favoritos. En realidad, se trata de secuencias de números del tipo 68.187.32.220.
Si en vez de recordar los dominios tuviéramos que recordar las IPs, 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 qué 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 casos lo que ocurre es que se notifica a los DNS que el dominio ejemplo.com ha cambiado de IP y en cuestión de horas 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 proveedor de Internet que tengas contratado.
Servidor web
La principal función de un servidor Web es almacenar los archivos de un sitio (HTML, CSS, JavaScript, multimedia, etc.) y emitirlos por Internet para poder ser visitado por los usuarios. 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 que procesa una aplicación del lado del servidor, realizando conexiones con el cliente y generando una respuesta en cualquier lenguaje o aplicación del lado del cliente. Este ordenador tiene unas características especiales que lo hacen fiable, seguro, con gran capacidad y potente.
Cada servidor tiene asignada una dirección 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 te ofrecen un servicio para alojar tus sitios web en sus servidores.
Más del 90% de los sitios en Internet utilizan un servidor alquilado a través de una empresa de Web Hosting
Sin los servidores Web, la Internet tal como la conocemos no existiría. Los servidores son el depositario de todo el contenido que existe en internet.
Entonces, ¿Qué sucede exactamente?
Cuando escribes una dirección web en el navegador:
- El navegador va al servidor DNS y encuentra la dirección real del servidor en el que el sitio web está alojado.
- El navegador envía un mensaje de petición HTTP al servidor, pidiéndole que envíe una copia de la página web para el cliente. Este mensaje y todos los datos enviados entre el cliente y el servidor, se envían a través de tu conexión a Internet usando el protocolo TCP/IP.
- Siempre que el servidor apruebe la solicitud del cliente, el servidor enviará al cliente un mensaje indicando que todo es correcto y comenzará a enviar los archivos de la página web al navegador como una serie de pequeños trozos llamados paquetes de datos.
- El navegador reúne los pequeños trozos, forma un sitio web completo y te lo muestra.