Saltar al contenido
Volver

Qué ocurre cuando visitas una página web

Escribes una dirección, presionas Enter y en segundos aparece una página. Parece algo simple, casi automático. Pero detrás de esa visita ocurren varias conversaciones técnicas: tu navegador pregunta dónde está el sitio, abre una conexión, negocia seguridad, habla con un servidor, espera una respuesta y luego arma la página en pantalla.

Entender ese camino ayuda muchísimo cuando una web está lenta, se cae, muestra errores raros o simplemente “a veces funciona y a veces no”. No siempre el problema está en “el hosting”. A veces está en DNS, en una consulta lenta, en una imagen pesada, en un CDN mal configurado o en JavaScript bloqueando el navegador.

Vamos a recorrerlo sin convertir esto en una tesis.

1. Primero: el navegador necesita encontrar el servidor

Cuando visitas:

https://blog.devops.com.do/

el navegador no sabe mágicamente dónde vive ese dominio. Necesita convertir el nombre en una IP. Para eso usa DNS.

En la práctica, DNS responde algo como:

blog.devops.com.do → 104.x.x.x

Puedes verlo con herramientas como dig o nslookup:

dig blog.devops.com.do

Eso no arregla nada por sí solo, pero te dice algo importante: si DNS falla, la petición ni siquiera llegó al servidor. Es como tener la dirección de un negocio mal escrita: puedes tener el mejor local del mundo, pero el delivery nunca va a llegar.

En producción, muchos problemas que parecen “la web está caída” son realmente problemas de DNS, propagación, registros mal puestos o un proxy como Cloudflare apuntando donde no debe.

2. Después viene la conexión

Ya con la IP, el navegador abre una conexión hacia el servidor. Si el sitio usa HTTPS —como debería— también ocurre una negociación TLS. Ahí se valida el certificado y se crea un canal cifrado.

La versión simple:

Navegador → IP del servidor → conexión → HTTPS listo

Si el certificado está vencido, mal emitido o no coincide con el dominio, el navegador se va a quejar antes de mostrar la página. Por eso un sitio puede “estar vivo” técnicamente, pero bloquearse por seguridad.

Una forma rápida de mirar headers y confirmar que hay respuesta es:

curl -I https://blog.devops.com.do/

Ahí puedes ver código HTTP, servidor, caché, redirects y otros detalles. No es una herramienta glamorosa, pero para diagnosticar web es como una linterna en un cuarto oscuro.

3. El servidor web recibe la petición

Cuando la conexión llega, normalmente la primera pieza que responde es un servidor web como Nginx, Apache, Caddy o algún proxy/CDN delante.

El servidor web decide qué hacer con la petición:

GET /posts/que-ocurre-cuando-visitas-una-pagina-web/

Puede responder con un archivo estático, redirigir, aplicar caché, comprimir la respuesta o pasar la petición a una aplicación.

Por ejemplo:

Visitante → Nginx → aplicación → base de datos

O, si es una imagen/CSS/JS:

Visitante → Nginx → archivo estático

Esa diferencia importa. Servir un archivo estático suele ser barato. Ejecutar lógica, consultar base de datos, armar HTML y llamar APIs externas es mucho más costoso.

Por eso una web bien optimizada intenta no despertar toda la aplicación cuando solo necesita entregar un logo, un CSS o una imagen.

4. La aplicación decide qué contenido entregar

Si la página es dinámica, el servidor web pasa la petición a la aplicación. Puede ser PHP, Node.js, Python, Ruby, Go, Java o lo que tenga el proyecto detrás.

La aplicación hace preguntas como:

Un caso común: visitas la página de un producto. La app puede buscar el producto, precio, inventario, imágenes, reseñas y promociones.

Eso parece una sola página, pero por dentro puede ser una fila de tareas:

Ruta → controlador → caché → base de datos → plantilla → respuesta HTML

Si una de esas piezas tarda, todo se siente lento.

Aquí es donde aparecen los clásicos: consultas lentas, falta de índices, APIs externas demoradas, procesos saturados o código haciendo más trabajo del necesario.

5. La base de datos puede ser el cuello de botella

Muchas páginas necesitan datos. Ahí entra MySQL, PostgreSQL, MariaDB, Redis, MongoDB o cualquier motor que esté detrás.

Una consulta rápida puede tomar milisegundos. Una mala consulta puede tomar segundos. Y una mala consulta repetida cientos de veces puede tumbar la experiencia completa.

La idea no es mirar SQL por mirar SQL, sino entender si la base de datos está respondiendo bien. En MySQL o MariaDB, una consulta problemática puede investigarse con herramientas como EXPLAIN:

EXPLAIN SELECT * FROM orders WHERE customer_id = 123;

Ese tipo de revisión ayuda a responder preguntas simples:

En la vida real, una web puede ir bien durante meses y volverse lenta sin cambiar el diseño. Solo creció la data. Lo que antes buscaba entre 5,000 registros ahora busca entre 5 millones. Misma página, otra realidad.

6. La respuesta vuelve al navegador

Cuando la aplicación termina, devuelve una respuesta. Normalmente HTML, JSON, una imagen, un archivo o un redirect.

Una respuesta HTTP trae un código:

200 OK
301 Moved Permanently
404 Not Found
500 Internal Server Error

También trae headers, que pueden decir cosas como:

cache-control: public, max-age=3600
content-type: text/html; charset=utf-8
content-encoding: br

Esos headers influyen mucho. Pueden indicar si el navegador debe guardar algo, si la respuesta viene comprimida, si hay redirects o si un CDN puede cachearla.

Con curl puedes medir una visita de forma simple:

curl -o /dev/null -s -w 'DNS: %{time_namelookup}s\nConnect: %{time_connect}s\nTTFB: %{time_starttransfer}s\nTotal: %{time_total}s\n' https://blog.devops.com.do/

No reemplaza herramientas como Lighthouse, WebPageTest o el panel Network de Chrome DevTools, pero da una señal rápida: ¿el servidor respondió tarde o el peso está después?

7. El navegador todavía tiene trabajo

Recibir HTML no significa que la página ya está lista. El navegador tiene que leerlo, descargar CSS, JavaScript, fuentes, imágenes y construir lo que ves.

A veces el servidor responde rápido, pero la página se siente lenta porque el frontend pesa demasiado.

Ejemplo realista:

Resultado: técnicamente el servidor “respondió bien”, pero el usuario siente una página pesada.

Por eso medir solo el backend no basta. También hay que mirar qué pasa en el navegador:

Servidor rápido + frontend pesado = experiencia lenta
Servidor lento + frontend liviano = espera inicial larga
Servidor rápido + frontend liviano = buena experiencia

No hay misterio. Hay cadena.

8. Dónde suelen aparecer los problemas

Cuando alguien dice “la web está lenta”, el problema puede estar en muchos puntos:

Lo importante es no adivinar. Adivinar en infraestructura sale caro y casi siempre termina en “sube el servidor” aunque el problema era una consulta sin índice o una imagen de 8 MB en el home.

Una forma simple de pensar el flujo

Puedes imaginar una visita como pedir comida en un restaurante:

DNS = encontrar el restaurante
Conexión = llegar y sentarte
HTTPS = confirmar que estás hablando con el lugar correcto
Servidor web = quien recibe la orden
Aplicación = la cocina organizando el plato
Base de datos = la despensa/inventario
Navegador = quien monta el plato en la mesa

Si la dirección está mal, no llegas. Si el mesero tarda, esperas. Si la cocina está lenta, esperas. Si falta un ingrediente, se complica. Si el plato llega pero hay que armarlo pieza por pieza en la mesa, también se siente lento.

La experiencia final depende de toda la cadena.

Idea final

Visitar una página web parece simple porque todo ocurre muy rápido cuando está bien diseñado. Pero detrás hay DNS, conexiones, seguridad, servidores, aplicación, base de datos, caché y navegador trabajando juntos.

Cuando entiendes ese camino, diagnosticar se vuelve más fácil. Ya no dices “la web está lenta” como si fuera una sola cosa. Puedes empezar a preguntar mejor:

Esa es la diferencia entre apagar fuegos a ciegas y operar sistemas con criterio.

Una web rápida no nace de magia ni de un botón de “optimizar”. Nace de entender qué ocurre en cada paso y quitar fricción donde realmente duele.


Comparte este post:

Post siguiente
Automatización vs IA: ¿Cuándo usar cada una?