Seguramente alguna vez te has preguntado qué ocurre 'detrás de escena' cuando escribes una dirección web en tu navegador y presionas 'Enter'. Aunque parezca una acción sencilla, en realidad desencadena toda una serie de procesos complejos que deben llevarse a cabo antes de que puedas acceder a la página web que querías visualizar.
Repasemos estos procesos, paso a paso, e intentando simplificarlos:
Presionando la tecla "g"
- Acción física: Cuando presionas la tecla "g" en tu teclado, se cierra un circuito específico de esa tecla, permitiendo que fluya una pequeña corriente eléctrica. Esto genera un código de tecla específico que el teclado envía a la computadora.
- Interrupción y envío del código: El código de la tecla se envía a través de la conexión USB al controlador del teclado, quien interpreta el código y lo pasa al sistema operativo.
- Autocompletado: Cuando comienzas a escribir "google.com", el navegador empieza a recibir eventos del teclado. El primer paso es cuando presionas la tecla "g". Tu navegador podría sugerirte "google.com" antes de que termines de escribir, gracias a sus funciones de autocompletado, que se basan en tu historial de búsqueda, marcadores y otros datos.
Presionando la tecla "Enter"
- Generación del código de tecla: Similar a la tecla "g", al presionar "Enter" se cierra un circuito, se genera un código (en este caso, el código 13) y se envía al ordenador.
- Procesamiento por el sistema operativo: El sistema operativo recibe el código de tecla y determina que se ha presionado "Enter". Este evento se envía a la aplicación activa, en este caso, el navegador web.
Procesamiento de la URL
- Detección de la URL: El navegador toma el conjunto del texto ingresado ('google.com') y determina si es una URL válida o meramente de un término de búsqueda.
- Conversión de caracteres: Si la URL contiene caracteres no ASCII (a-z, A-Z, 0-9, -, .), estos se convierten a un formato compatible llamado Punycode.
- Verificación de HSTS (HTTP Strict Transport Security): El navegador verifica si el sitio está en una lista de sitios que requieren que se acceda a ellos mediante HTTPS (protocolo seguro).
Resolución de DNS
El navegador necesita la dirección IP de "google.com". Primero, busca en su caché DNS local. Si no está ahí, realiza una solicitud DNS, que puede involucrar varias etapas:
- Verificación del archivo de hosts local: Un archivo en tu computadora que puede contener direcciones IP locales.
- Solicitud al servidor DNS: Si la dirección no está en el archivo de hosts, el navegador envía una solicitud al servidor DNS configurado (generalmente tu router o el servidor de tu ISP).
- Proceso ARP: Si la solicitud necesita cruzar subredes, se utiliza el Protocolo de Resolución de Direcciones (ARP) para encontrar la dirección MAC del destino.
Apertura de un socket
- Creación de una conexión: Con la dirección IP en mano, el navegador abre un socket (una conexión) con el servidor web de Google.
- Proceso de conexión TCP: Se sigue un protocolo llamado TCP para establecer una conexión fiable, lo cual incluye intercambiar varios paquetes de datos.
Handshake TLS
- Establecimiento de seguridad: Si la conexión es HTTPS, se realiza un "handshake" (apretón de manos) TLS para establecer una conexión segura. Esto implica el intercambio de mensajes entre cliente y servidor, la verificación de certificados y la creación de una clave de cifrado compartida.
Protocolo HTTP
- Solicitud al servidor: El navegador envía una solicitud HTTP al servidor de Google, pidiendo la página principal (google.com).
- Respuesta del servidor: El servidor responde con el código HTML de la página solicitada.
Renderización de la página web
- Parseo del HTML: El navegador empieza a analizar el código HTML recibido.
- Interpretación del CSS: El navegador interpreta las hojas de estilo (CSS) para aplicar los estilos correspondientes a los elementos HTML.
- Renderización de la página: Finalmente, el navegador combina todo y dibuja la página en la pantalla.
Elementos adicionales
- JavaScript: Si el HTML incluye scripts de JavaScript, estos se ejecutan y pueden modificar dinámicamente el contenido de la página.
- Carga de recursos adicionales: El navegador también descarga y procesa otros recursos mencionados en el HTML, como imágenes, videos y otros scripts.
Epílogo...
¿Ya te lo has leído todo? Bueno, pues debes saber que la realidad es algo más compleja que ese resumen (aunque sí es un buen resumen). Para ampliar información al respecto, deberías echarle un vistazo a este repositorio en GitHub del desarrollador de software Alex Gaynor.
Imagen | Marcos Merino mediante IA
En Genbeta | Qué es una VPN, cómo funciona y cómo te puede ayudar
Ver 3 comentarios