Los servicios de acortamiento de URL se basan en tres componentes técnicos fundamentales: generación de códigos cortos, almacenamiento en base de datos y redirección HTTP. Este artículo explica cómo se generan las URLs cortas y cómo los usuarios son redirigidos al destino original, con ejemplos reales de respuestas HTTP.
Cuando envías una URL larga, el servicio genera un código corto único. Existen varios enfoques para este paso. La generación de cadenas alfanuméricas aleatorias, la extracción de una porción de un hash (como SHA-256) de la URL original y la codificación de IDs secuenciales en formato base-62 son los métodos más comunes. La codificación base-62 utiliza 62 caracteres: dígitos 0-9 (10), minúsculas a-z (26) y mayúsculas A-Z (26). Por ejemplo, el número secuencial 100000 se convierte en "q0U" en base-62 (solo 3 caracteres). Un código de 6 caracteres proporciona 62^6 = aproximadamente 56.800 millones de combinaciones posibles, garantizando suficiente unicidad incluso para servicios a gran escala. Los métodos basados en hash pueden generar el mismo código para la misma URL, lo cual es útil para la deduplicación, pero requieren manejo de colisiones cuando diferentes URLs producen el mismo prefijo de hash. Los métodos secuenciales evitan colisiones por completo pero producen códigos predecibles, requiriendo consideraciones de seguridad para prevenir ataques de enumeración.
La correspondencia entre el código corto y la URL original se almacena en una base de datos. Las bases de datos NoSQL de alto rendimiento como DynamoDB se usan comúnmente porque los acortadores de URL tienen cargas de trabajo con predominio de lectura. Muchos servicios también implementan una capa de caché usando Redis o Memcached para mejorar los tiempos de respuesta. Los servicios a gran escala colocan un CDN como CloudFront frente al servidor de origen, almacenando en caché las respuestas de redirección en ubicaciones de borde para entregar redirecciones con latencia de milisegundos de un solo dígito en todo el mundo. Sin embargo, al usar caché CDN con redirecciones 301, es esencial un diseño cuidadoso del TTL (duración de la caché). Si cambias la URL de destino mientras la caché permanece, los usuarios seguirán siendo redirigidos a la URL antigua hasta que la caché expire. Este es un compromiso crítico entre rendimiento y flexibilidad. Para una comprensión más profunda de estos sistemas, los libros de arquitectura de bases de datos en Amazon ofrecen una excelente cobertura técnica.
Cuando un usuario hace clic en una URL acortada, el servidor realiza una redirección HTTP. La respuesta real de redirección consiste en cabeceras HTTP como: "HTTP/1.1 301 Moved Permanently", "Location: https://example.com/very/long/original-page?utm_source=campaign", "Cache-Control: max-age=86400", "Content-Length: 0". El navegador lee la cabecera Location y navega automáticamente a la URL especificada. Hay dos tipos principales de redirección: 301 (permanente) y 302 (temporal). Una redirección 301 es almacenada en caché por el navegador, haciendo las visitas posteriores más rápidas pero impidiendo que el servidor rastree los clics repetidos. Una redirección 302 pasa cada clic a través del servidor, permitiendo analíticas precisas. La mayoría de los servicios de acortamiento de URL usan por defecto redirecciones 302 para priorizar la precisión del seguimiento.
Puedes verificar el comportamiento de redirección directamente usando el comando curl en tu terminal. Ejecutar "curl -v -L https://short.url/abc" muestra las cabeceras de respuesta incluyendo el código de estado HTTP y la cabecera Location. La opción "-I" recupera solo las cabeceras, lo cual es conveniente para inspeccionar cadenas de redirección.
El flujo completo desde la resolución DNS hasta la finalización de la redirección funciona de la siguiente manera. El navegador resuelve el dominio de la URL corta mediante DNS, obteniendo la dirección IP del servidor (típicamente 10-50ms). Luego establece una conexión HTTPS a través de un handshake TLS (50-100ms) y envía una solicitud HTTP GET al servidor. El servidor busca el código corto en la base de datos o caché para recuperar la URL original (1-10ms), y luego responde con un código de estado de redirección y la URL original en la cabecera Location. El navegador navega al destino a través de un proceso similar de resolución DNS y conexión. Cuando se usa un CDN, toda la secuencia desde la resolución DNS inicial hasta recibir la respuesta de redirección se completa en aproximadamente 20-50 milisegundos.
Elegir entre tipos de redirección implica un compromiso según tu caso de uso. Para enlaces permanentes donde el SEO importa, se prefieren las redirecciones 301. Google confirma oficialmente que el valor de enlace (SEO value) se transmite a través de las redirecciones 301. Para casos de uso de marketing donde la precisión del seguimiento de clics es la prioridad, las redirecciones 302 son la mejor opción. Algunos servicios ofrecen la opción de seleccionar el tipo de redirección por enlace, dándote máxima flexibilidad.
Lectura recomendada: para profundizar en tecnologías web y HTTP, explora libros relacionados en Amazon.