Todos los productos
Search
Centro de documentos

Edge Security Acceleration:Caché API

Última actualización: Sep 06, 2026

Caché API le permite almacenar datos en la caché de los nodos perimetrales para obtener respuestas más rápidas en las solicitudes posteriores. Configure la duración y el tamaño de la caché para controlar las políticas de almacenamiento.

Cómo funciona

La Caché API integrada de Edge Routines (ER) almacena en la caché los datos que procesa ER o que se obtienen del servidor de origen hacia ESA. De este modo, otras solicitudes en el mismo nodo pueden reutilizarlos. Esto reduce los cálculos repetidos y las solicitudes de red. A continuación se muestra la relación entre ER y la caché de ESA:How it works

Estándar de la API

Caché API cumple en la mayor medida posible con la interfaz estándar Cache. Sin embargo, dado que Edge Routines reutiliza el motor de caché existente de ESA, la semántica no es completamente coherente.

Definición de la API

cache.put(request/string, response)

  • Almacena un objeto Response en la caché.

    • Si put se ejecuta correctamente, se resuelve como undefined.

    • Si el motor de caché falla, se rechaza con una excepción de error.

    • Si se excede la cuota del motor de caché, se rechaza con una excepción de error.

  • La clave de caché se establece con la URL del objeto request o con una cadena de URL. Use URL HTTP. Actualmente, debido al motor de caché de ESA, las URL HTTPS no son compatibles.

  • Esta es una función asíncrona. Use await para asegurarse de que la operación put haya terminado .

  • Establezca el encabezado cache-control en el objeto Response para configurar el TTL de la caché (el encabezado cache-control sigue los estándares de caché).

Examples

  • Almacenar contenido en la caché.

    async function doPut() {
      await cache.put("http://www.example.com", new Response("Hello World"));
      new Response("Hello World", {headers: [["cache-control", "max-age=10"]]})); 
    }
  • Almacenar contenido en la caché y establecer el TTL.

    async function doPut() {
      await cache.put("http://www.example.com", new Response("Hello World"));
      await cache.put("http://www.example.com", 
      new Response("Hello World", {headers: [["cache-control", "max-age=10"]]})); 
    }

cache.get(request/string)

  • Recupera un objeto Response mediante el request/string especificado como clave. Si el objeto no existe, se resuelve como undefined.

  • Esta es una función asíncrona. Use await para asegurarse de que la operación get haya terminado.

  • Es posible que get no devuelva el objeto que acaba de almacenarse. La caché utiliza el algoritmo LRU y no garantiza que siempre se pueda recuperar el objeto almacenado.

Examples

  • Usar cache.get para recuperar un objeto Response.

    async function doGet() {
        let resp = await cache.get("http://www.example.com");
    }
  • Analizar sintácticamente el resultado almacenado en la caché a JSON.

    async function doGet() {
        let resp = await cache.get("http://www.example.com");
        let j = await resp.json();
    }

cache.delete(request/string)

  • Elimina un objeto Response con la clave especificada.

    • Si la eliminación se ejecuta correctamente, se resuelve como true.

    • Si la eliminación falla, se resuelve como false.

  • Esta es una función asíncrona. Use await para asegurarse de que la operación delete haya terminado.

Example (delete a resource under a key)

async function doDelete() {
  let resp = await cache.delete("http://www.example.com");
  
  if (resp) {
        console.alert("done");
  } else {
        console.alert("failed");
  }
}

Límites de uso

  • Todas las operaciones de Caché API son subsolicitudes que comparten el límite de subsolicitudes de ER. De forma predeterminada, una sola solicitud de ER admite un máximo de 32 subsolicitudes fetch (este número podría cambiar cuando ER se comercialice). Las operaciones de Caché API comparten este límite con fetch, por lo que la suma total de operaciones cache.put + cache.get + cache.delete + fetch dentro de un mismo contexto de solicitud no puede superar 32.

  • Las funciones cache.put, cache.get y cache.delete cuentan con control de concurrencia. Para la misma URL, si una solicitud ejecuta get mientras otra ejecuta delete, la operación podría devolver un estado pendiente porque varias solicitudes concurrentes modifican la misma clave. En este caso, espere y vuelva a intentarlo.

    Nota

    Cuando cache.put, cache.get o cache.delete se rechaza como true, indica que la operación está sujeta al control de concurrencia.

Actualización de la caché

Actualmente, Caché API no es compatible con la actualización activa de la caché. Especifique una duración adecuada mediante el parámetro TTL al llamar a Cache.put().