Saltar al contenido principal
Q drop
Tecnología web

TTL

Resumen

El TTL (Time to Live) es la fecha de caducidad que se fija para los datos o los paquetes de red. Los datos que pasan el TTL se borran automáticamente como «caducados» o hay que volver a obtenerlos. El concepto de TTL se usa en muchas capas de la tecnología web, como los registros DNS, la caché de una CDN, los registros de una base de datos o los paquetes de red.

El TTL en el DNS

El TTL de un registro DNS indica los segundos durante los que el resolvedor (servidor de caché DNS) guarda ese registro en caché. Un registro con un TTL de 3600 (1 hora) lo guarda el resolvedor en caché durante 1 hora, y durante ese tiempo no consulta al servidor DNS autoritativo.

Configurar el TTL es un equilibrio entre ventajas e inconvenientes. Un TTL largo reduce el número de consultas al servidor DNS y mejora la velocidad de resolución de nombres. Un TTL corto hace que los cambios se apliquen antes, pero aumenta la carga del servidor DNS. Una forma de trabajar es poner un TTL de entre 1 hora y 24 horas en los registros que cambian poco y, cuando se tiene previsto cambiar un registro DNS, acortar antes el TTL de forma temporal.

El TTL en las bases de datos

En DynamoDB, si activas el TTL en una tabla y pones un atributo TTL (una marca de tiempo Unix) en un registro, este se borra automáticamente después de caducar. Es adecuado para gestionar datos que dejan de hacer falta pasado cierto tiempo, como la información de sesión, los tokens temporales o los datos de caché.

En un servicio web como un buzón de preguntas, se puede poner un TTL al ID de sesión para gestionar la caducidad de las sesiones de inicio de sesión, o poner un TTL corto a los tokens de un solo uso para evitar que se reutilicen. El borrado automático con TTL, comparado con limpiar los registros antiguos con un proceso por lotes periódico, requiere menos trabajo de mantenimiento y hace más difícil que se quede algo sin borrar.

El TTL en la caché de una CDN

En una CDN (Content Delivery Network), el TTL controla el tiempo durante el que los servidores perimetrales guardan en caché el contenido obtenido del servidor de origen. Se puede pensar en separar los usos: poner un TTL largo a los recursos estáticos (imágenes, CSS, JavaScript) y no guardar en caché el contenido dinámico (las respuestas de la API) o ponerle un TTL muy corto.

Si pones un TTL largo a los recursos estáticos, incluir un valor hash en el nombre del archivo (por ejemplo, main.a1b2c3.js) hace que, cuando se actualiza el contenido, la URL cambie automáticamente y se evita el problema de que se use una caché antigua. Esta técnica se llama invalidación de caché por nombre (cache busting), y en Next.js los nombres de los archivos estáticos cuyo contenido no cambia una vez publicados incluyen un valor hash.

¿Te ha resultado útil este artículo?

Términos relacionados

Artículos relacionados

¿Quieres crear tu propio buzón de preguntas?

Regístrate solo con tu correo electrónico. No necesitas contraseña.

Empieza gratis