# Primeros pasos con la caché

> Activa la caché del borde en una zona o en un nombre, comprueba que un fichero estático pasa de MISS a HIT y añade una regla para el HTML si la quieres.

## Antes de empezar

- Una zona con al menos un nombre con proxy. Consulta [DNS](https://developers.openwaf.dev/es/dns/).
- Rol `tech` o `admin`.

## Activa la caché

**Panel**

1. Abre la zona y ve a **Caché**.
2. Activa **Caché en el borde**. Con **Ámbito** decides si se aplica a todo el dominio o a un solo nombre.
3. Pulsa **Guardar cambios** e indica un motivo.

**CLI**

```sh
openwaf-cloud ctl zones set example.com cache.enabled:=true --reason "caché de estáticos"
# Solo un nombre:
openwaf-cloud ctl zones set example.com --host static.example.com cache.enabled:=true --reason "caché de estáticos"
```

**API**

```sh
curl -s -X PATCH https://dash.openwaf.dev/v1/orgs/$ORG/zones/$ZONE/edge \
  -H "Authorization: Bearer $OPENWAF_TOKEN" \
  -H "Content-Type: application/json" \
  -H "X-Change-Reason: caché de estáticos" \
  -d '{"cache": {"enabled": true}}'
```

**MCP**

`update_settings` con `{"zone": "example.com", "settings": {"cache": {"enabled": true}}, "reason": "caché de estáticos"}`: primero `confirm=false` para ver las diferencias y después `confirm=true` con `expected_version`.


El cambio llega a los nodos del borde con su siguiente configuración, normalmente en segundos.

## Comprueba que funciona

Pide dos veces un fichero estático:

```sh
curl -sI https://www.example.com/app.css | grep -i -E 'x-cache-status|cache-status|age'
```

La primera respuesta es un `MISS` (se pide al origen y se guarda); las siguientes del mismo nodo del borde son `HIT` con un `Age`:

```http
x-cache-status: HIT
cache-status: OpenWAF; hit
age: 42
```

Una página HTML responde `DYNAMIC`: el HTML no se cachea por defecto. Todos los valores están en [Cabeceras de estado de la caché](https://developers.openwaf.dev/es/cache/cache-status/).

> **Nota**
>
> Cada nodo del borde tiene su propia caché. Una petición que sirve otro nodo puede ser un `MISS` aunque otro nodo ya tenga el fichero.


## Siguientes pasos

- [Comportamiento por defecto](https://developers.openwaf.dev/es/cache/default-behavior/): qué se cachea y cuánto tiempo.
- [Reglas de caché](https://developers.openwaf.dev/es/cache/cache-rules/): cachea el HTML u omite el admin y los visitantes con sesión, con plantillas listas.
- [Purgar la caché](https://developers.openwaf.dev/es/cache/purge/): borra contenido tras un despliegue.
