Resumen

  • Cache-Control: only-if-cached pide exclusivamente una respuesta almacenada; una caché que respete la directiva debe devolver una respuesta apta o un 504.
  • Ese 504 puede producirse sin contactar con el origen, por lo que acredita el fallo de la consulta local y no la indisponibilidad del servidor de origen.

Imaginemos una sonda de disponibilidad en un caso expresamente hipotético. El operador quiere comprobar si una configuración reside en el borde y envía un GET con Cache-Control: only-if-cached. La caché no encuentra una respuesta almacenada que cumpla la petición y devuelve 504. Una regla mira solo el estado, declara un timeout del origen y avisa a su equipo. Pero la caché cumplió la orden: no reenvió la petición y el origen no recibió tráfico.

La ambigüedad nace de dos contextos. RFC 9110 define generalmente Gateway Timeout como la falta de una respuesta oportuna del servidor aguas arriba que una pasarela necesitaba consultar. RFC 9111 da a una caché que honra only-if-cached dos salidas: una respuesta almacenada compatible con las demás restricciones o 504. En esa segunda rama, el cliente pidió que no hubiera acceso al origen.

La directiva cambia el experimento. No pregunta si el origen puede contestar, sino si esa caché puede resolver la petición mediante una respuesta almacenada que esté autorizada a reutilizar. Interpretarlo como una prueba de extremo a extremo mezcla dos rutas de control.

Tener bytes guardados tampoco basta. Deben coincidir objetivo y método; los campos señalados por Vary; las condiciones de validación; y el estado de frescura o el permiso para servir contenido obsoleto. Una caché puede contener datos del URI y no tener ningún candidato apto. El 504 puede significar «nada reutilizable aquí bajo estas condiciones», no necesariamente «nada almacenado».

El código tampoco identifica qué caché tomó la decisión. La petición puede pasar por navegador, proxy empresarial, CDN y pasarela. Hace falta registrar la identidad del punto que respondió, la directiva recibida, los candidatos, cada descarte y la supresión del reenvío. Sin esa traza, un panel atribuye responsabilidad por costumbre.

La diferencia importa: una incidencia del origen y la ausencia de una copia apta en caché tienen responsables y remedios distintos. Una sonda ordinaria exitosa junto a otra limitada a la caché no implica intermitencia; ambas formularon preguntas diferentes.

Use un recibo de decisión limitado a la caché. Es una síntesis operativa propuesta aquí, no un elemento de protocolo definido por el IETF. Vincule objetivo, método, directivas, identidad y clave de caché, candidatos, comparación Vary, frescura o permiso de servir contenido obsoleto, validación, selección o fallo, decisión de reenvío y evidencia de intento aguas arriba. Después clasifique el resultado como elegibilidad, política de reenvío o espera del origen.

La ausencia de intento aguas arriba no demuestra que el origen estuviera sano; demuestra que esta observación no puede probar que falló. Para eso se necesita una sonda independiente sin la restricción de consulta limitada a la caché. El contexto y la traza, no el estado aislado, sostienen la causa.

Fuentes