El almacenamiento en caché programable de Fastly es una de los superpoderes de nuestra plataforma Compute. ¿Quieres personalizar una imagen para sorprender a cada usuario de tu aplicación? Tenemos lo que necesitas. Y hacerlo en el contexto de un flujo de petición/respuesta HTTP no debería ser una carga. Fastly Compute lo resuelve con la sencillez de nuestras API en caché HTTP, un conjunto de interfaces de programación de aplicaciones SDK utilizables desde el código de Compute.
¿Cómo funciona?
De forma predeterminada, cuando las peticiones HTTP pasan por el borde de Fastly, las respuestas de origen se almacenan automáticamente en caché (a menos que se anule explícitamente a través de Cache-Control). Las peticiones posteriores de ese mismo recurso se pueden entregar desde la caché sin tener que conectarse al backend.
Las API en caché HTTP permiten a los desarrolladores hacer algo que nunca antes habían podido hacer con Compute. Ahora podéis inyectar personalizaciones en este flujo predeterminado, lo que abre las puertas a nuevos casos de uso y todo un abanico de posibilidades para los clientes de Compute.
Lo que debes saber
API en caché HTTP: resumen
Proporciona soporte HTTP de primera clase en tu idioma preferido
Permite un acceso pormenorizado y programático a la caché de Fastly.
Permite personalizar el contenido dinámico que distribuye Fastly Compute.
Permite a los desarrolladores personalizar el comportamiento de la caché con facilidad.
La interfaz de caché HTTP se basa en los cimientos establecidos por las interfaces Simple Cache y Core Cache y está optimizada para almacenar en caché peticiones/respuestas dentro del flujo de la especificación HTTP. Se trata de una API totalmente integrada que ofrece a los desarrolladores una serie de prestaciones, como la posibilidad de realizar cambios en las propiedades en caché de un objeto, ajustar encabezados como Cache-Control, etc., todo ello en el contexto de un flujo HTTP.
Casos de uso que encantan a nuestros clientes
A continuación, se muestra un ejemplo sencillo de JavaScript en el que se modifica el tiempo de vida (TTL) de Fastly mientras se configura un encabezado Surrogate-Control para las cachés descendentes y un encabezado Cache-Control para gestionar las cachés del navegador:
const backendResp = await fetch(clientReq, {
backend: 'example_backend',
cacheOverride: new CacheOverride({
afterSend(resp) {
resp.ttl = 300;
resp.headers.set('Cache-Control', 'max-age=86400'); // Rules for browsers
resp.headers.set('Surrogate-Control', 'max-age=31536000'); // Rules for downstream caches
resp.headers.delete('expires');
},
}),
});
Y hay muchas otras arquitecturas que podéis implementar. A continuación repasamos algunas de ellas:
Personalización de los controles de caché de una respuesta de backend antes del almacenamiento en caché. Los desarrolladores podéis establecer el tiempo de vida (TTL) de la caché en función de un encabezado de respuesta no relacionado con la caché, como Content-Type.
Ventaja: esta flexibilidad permite estrategias de almacenamiento en caché más inteligentes y eficaces. Al establecer los TTL de caché según el tipo de contenido, los desarrolladores podéis optimizar el rendimiento y el uso de recursos. Por ejemplo, los activos estáticos, como imágenes o archivos CSS, se pueden almacenar en caché durante periodos más largos, mientras que el contenido dinámico puede tener tiempos de vida más cortos. De esta forma, se acelera la velocidad del sitio web, se reduce la carga de origen y se mejora la experiencia del usuario, todo ello manteniendo los contenidos actualizados y adecuados a cada tipo de activo.Modificación de los encabezados de respuesta o el cuerpo antes de almacenarlo en la caché. Por ejemplo, los desarrolladores podéis almacenar en caché la versión HTML generada localmente de una respuesta, en lugar del JSON sin procesar devuelto por el origen.
Ventaja: esta prestación permite a los desarrolladores almacenar en caché versiones optimizadas del contenido, con la consiguiente reducción del tiempo de procesamiento y la mejora de la velocidad de distribución. Al almacenar en caché la versión HTML en lugar de la versión JSON sin procesar, las peticiones posteriores se pueden atender más rápido, ya que se elimina el paso de transformación. De este modo, no solo se mejora el rendimiento, sino que también se reduce la carga computacional, tanto en el servidor de origen como en el borde, lo que se traduce en un ahorro de costes y una aplicación más adaptativa en general.Decisión de almacenar en caché basándose en el contenido de origen. Es ideal para situaciones en las que no se quiera almacenar en caché una respuesta HTTP 200 OK.
Ventaja: este nivel de control asegura que solo se almacena en caché contenido válido y útil, lo que contribuye a garantizar la integridad y la fiabilidad de la caché. Al evitar el almacenamiento en caché de respuestas que contienen errores a pesar de un estado 200 OK, los desarrolladores podéis evitar la propagación de datos incorrectos a los usuarios. El resultado es una experiencia de usuario más coherente, se reduce el riesgo de servir contenidos obsoletos o erróneos y se garantiza la calidad y precisión de los resultados de la aplicación.
Para más información y ejemplos de código, visita nuestro portal para desarrolladores.
Es hora de empezar a almacenar en caché
Las API en caché de Fastly son perfectas para ampliar los límites de la personalización y ofrecer experiencias punteras. Estos nuevos controles de caché se integran sin problemas con los flujos de trabajo ya existentes, lo que facilita enormemente la incorporación de personalizaciones sencillas.
¿Te animas a probar las API en caché HTTP? Empieza a usarlo hoy mismo o únete a la conversación en el foro para saber cómo podemos ayudarte a sacar más provecho de tu caché.