Abres el navegador, escribes google.com y un segundo después ves la página. ¿Magia? No. Detrás de este segundo se esconde toda una cadena de eventos que cada desarrollador debe entender. Y si quieres pensar como un hacker (ético, por supuesto 😏), entonces saber esto no es una opción, sino una necesidad.
Vamos a poner todo en orden. Sin aburrimiento, con ejemplos de la vida.

🔍 DNS: la guía telefónica de Internet
Los ordenadores no entienden google.com. Funcionan con direcciones IP como 142.250.74.206. Y el DNS (Domain Name System) es una enorme guía telefónica que traduce las direcciones humanas a las de las máquinas.
Qué sucede cuando ingresas la dirección del sitio:
Caché del navegador — ¿Quizás ya has entrado? Entonces la IP ya está guardada.
Caché del sistema operativo — el sistema también lo recuerda.
Router - incluso él almacena su caché de DNS.
Resolución de DNS del proveedor — si no se encuentra en ningún lugar, la solicitud se envía al servidor del proveedor.
DNS raíz → TLD → servidor autorizado — cadena de consultas hasta que se encuentre una respuesta.
Todo esto ocurre en milisegundos. Pero esto es lo interesante desde el punto de vista de la seguridad:
Suplantación de DNS — el atacante reemplaza la respuesta de DNS y te envía a un sitio falso. Introduces bank.com, pero te encuentras con un clon de estafadores. Exteriormente, es uno a uno. Por eso, un solo DNS no es suficiente, necesitas HTTPS.
Pruébalo tú mismo: abre la terminal e introduce nslookup google.com o dig google.com. Verás cómo tu sistema busca la IP.
📡 HTTP: tarjeta sin sobre
HTTP (HyperText Transfer Protocol) es el protocolo a través del cual el navegador se comunica con el servidor. Funciona según el principio de «solicitud-respuesta».
Anatomía de una solicitud HTTP:
GET /profile HTTP/1.1
Host: example.com
Cookie: session_id=abc123
User-Agent: Mozilla/5.0El servidor responde:
HTTP/1.1 200 OK
Content-Type: text/html
Set-Cookie: session_id=abc123
<html>...</html>Sencillo, ¿verdad? Pero hay un gran problema: HTTP transmite todo texto sin formato. Imagina que estás enviando una postal por correo: cualquier cartero puede leerla. Nombre de usuario, contraseña, número de tarjeta: todo es visible.
Métodos HTTP básicos:
GET «dame los datos»
POST «aquí están mis datos»
PUT «actualizar esto»
DELETE «eliminar esto»
Códigos de respuesta que vale la pena recordar:
200 todo bien
Redirección 301
403 prohibido
404 no encontrado
El servidor 500 se ha caído
Hacker que intercepta el tráfico HTTP (por ejemplo, en una red Wi-Fi pública), ve absolutamente todo. Por lo tanto, el HTTP puro hoy en día es una vulnerabilidad.
🔒 HTTPS: sobre con sello de lacre
HTTPS es el mismo HTTP, pero envuelto en cifrado a través de TLS (Transport Layer Security). Ahora los datos parecen una mezcla de caracteres para todos, excepto para el remitente y el destinatario.
Cómo se establece una conexión segura (TLS Handshake):
Cliente: «Hola, quiero hablar de forma segura. Estas son mis opciones de cifrado».
Servidor: «¡Hola! Aquí está mi certificado SSL, puedes comprobar que soy real».
Cliente: verifica el certificado a través de la autoridad de certificación (CA).
Ambos generan una clave secreta compartida.
Siguiente toda la comunicación está cifrada con esta clave.
¿Por qué un hacker haría esto?
Incluso si un atacante intercepta el tráfico HTTPS, solo verá basura cifrada. Pero hay matices:
Versiones obsoletas de TLS (1.0, 1.1) tienen vulnerabilidades conocidas. Certificados configurados incorrectamente — si el usuario se acostumbra a hacer clic en «ir de todos modos», puede ser engañado. MITM (Man-in-the-Middle) — el atacante se interpone entre el cliente y el servidor, sustituyendo su certificado. ¡Presta atención al candado 🔒 en la barra de direcciones!

🍪 Cookie: una insignia digital
HTTP — protocolo sin estado (stateless). El servidor no te recuerda entre solicitudes. Cada vez que lo haces, eres un extraño para él. Las cookies resuelven este problema.
Cookie — un pequeño fragmento de texto que el servidor pide al navegador que guarde y envíe con cada solicitud.
Cómo funciona:
Inicias sesión en el sitio web.
El servidor crea una sesión y responde:
Set-Cookie: session_id=xyz789El navegador guarda esta cookie.
Con cada solicitud posterior, el navegador envía:
Cookie: session_id=xyz789El servidor ve el ID y entiende: «¡Ah, este es el mismo usuario!»
Tipos de KUK:
Session: duran hasta que se cierra el navegador
Persistent: Viven hasta la fecha especificada
HttpOnly- JS no puede leerlos - protección contra XSS
Seguro: solo se envía a través de HTTPS
SameSite - Protección contra ataques CSRF
Por qué los hackers cazan cookies:
Si robas la cookie de sesión de otra persona, puedes iniciar sesión en el sitio en nombre de la víctima sin iniciar sesión. Esto se llama session hijacking (secuestro de sesión).
Métodos de robo: XSS (un script malicioso roba cookies), intercepción de tráfico (si no hay HTTPS), acceso físico al navegador de otra persona.
🎫 Sesiones: ¿quién eres para el servidor?
Una sesión es un mecanismo para almacenar datos sobre el usuario en el lado del servidor. La cookie solo contiene el ID de la sesión (clave), y todos los datos (nombre, rol, carrito de la compra) se encuentran en el servidor.
Cookie vs Session: ¿cuál es la diferencia?
Cookie | Session | |
|---|---|---|
Dónde se almacena | En el navegador | En el servidor |
Tamaño | Hasta ~4 KB | Sin restricciones |
Seguridad | El cliente puede cambiar | El cliente solo ve el ID |
Ejemplo |
|
|
JWT: un enfoque alternativo:
En lugar de almacenar sesiones en el servidor, puedes usar JSON Web Token (JWT). Es un token que contiene información cifrada sobre el usuario. El servidor no almacena el estado, todo está dentro del token.
Estructura: header.payload.signature
Pros: escalabilidad (no se necesita una base de datos de sesión compartida). Contras: no se puede «matar» un token individual antes de que expire.
📱 ¿Quieres entenderlo de verdad? ¡Practica!
La teoría es la base, pero la verdadera comprensión solo se logra con la práctica. ¡Pruébalo! Kodik - una aplicación donde aprendes a programar resolviendo problemas reales. Sin agua, solo práctica y explicaciones claras.
Y también suscríbete a nuestro Canal de Telegram — publicaciones útiles sobre programación, análisis de temas y trucos. Léelo en el metro, en el almuerzo o antes de acostarte 🚀
🧠 Resumen
Internet no es magia. Es una cadena de protocolos, cada uno de los cuales resuelve su propia tarea. El DNS traduce los nombres en direcciones, HTTP entrega datos, HTTPS los cifra, las cookies almacenan el estado y las sesiones identifican al usuario.
Comprender estos conceptos básicos es el primer paso para escribir código seguro y pensar con un paso por delante. No como un usuario normal, sino como alguien que sabe lo que está pasando bajo el capó. 🧠
