Resumen

  • 304 Not Modified resuelve una condición HTTP sobre una representación seleccionada y permite actualizar metadatos almacenados; no es un certificado general de vigencia de las dependencias.
  • Antes de usar una revalidación como autorización para una decisión sensible, conviene vincular el validador con la versión de los datos, políticas o instantáneas que formaron la representación.

Imaginemos un endpoint de configuración alimentado por una instantánea de base de datos. La caché envía If-None-Match con la etiqueta de entidad que conserva. El origen evalúa la condición para la representación seleccionada y responde 304 Not Modified. No viaja contenido nuevo. La caché actualiza los metadatos permitidos y un panel convierte ese resultado verde en una conclusión más amplia: «cadena de dependencias verificada».

Ahí una prueba de protocolo se convierte en ficción gerencial. El 304 puede ser correcto aunque la instantánea usada por la aplicación sea más antigua de lo que admite la decisión de negocio. HTTP respondió a la pregunta que recibió; el panel sustituyó esa pregunta por otra.

La condición tiene un objeto definido

RFC 9110 define If-None-Match mediante etiquetas de entidad aplicadas a la representación seleccionada. En un GET o HEAD condicional, una condición falsa conduce a un 304 en lugar del 200 que habría llevado el contenido. El mecanismo es valioso porque su alcance es preciso: el validador fue evaluado bajo la semántica de HTTP.

Por eso un 304 no es un 200 vacío. No contiene cuerpo, pero puede aportar campos necesarios para orientar a las cachés, como ETag, Date, Cache-Control, Expires, Content-Location y Vary cuando corresponda. RFC 9111 describe después cómo identificar las respuestas almacenadas que deben actualizarse. Los validadores fuertes y débiles cumplen funciones distintas. Una vez identificada la respuesta correspondiente, la caché sustituye los campos de cabecera aplicables por los del 304, respetando las exclusiones de la norma.

Es una operación disciplinada sobre una representación y sus metadatos. No es una declaración acerca de todos los sistemas que intervinieron en ella.

Validez de representación no equivale a vigencia de dependencias

Una etiqueta de entidad pertenece a la semántica que el origen eligió para la representación. La aplicación puede calcularla a partir de los bytes finales, un número de versión, un identificador de despliegue u otro insumo propio. HTTP no exige que codifique la versión de cada fila de base de datos, paquete de políticas, bandera funcional, fuente de derechos o resultado de API utilizado aguas arriba.

La diferencia importa cuando la representación es derivada. Los bytes JSON pueden seguir iguales y justificar el 304. Pero si fueron calculados desde una instantánea que debía haberse renovado cinco minutos antes, la representación sin cambios conserva precisamente la obsolescencia que el operador necesita detectar. La revalidación confirma continuidad en el límite del validador; no amplía ese límite retroactivamente.

Nada de esto desacredita las solicitudes condicionales. Ahorran transferencia y recursos. Tampoco significa que todo 304 esconda datos antiguos. La cuestión es el alcance de la evidencia. «La representación todavía coincide con este validador» no implica «todas sus dependencias están vigentes» sin una prueba adicional.

Registrar el linaje que falta

Una respuesta de configuración de alto impacto puede exponer o registrar el identificador de la instantánea, la hora de actualización de la fuente, la versión del paquete de políticas o el punto de materialización. La caché puede conservar el objetivo de la solicitud, la respuesta almacenada, los campos condicionales, los metadatos del 304 y la decisión exacta que consumió el resultado.

El recibo de cadena de validación propuesto aquí es una síntesis editorial de control, no un objeto definido por el IETF ni por las RFC citadas. Debería reunir:

  • objetivo de la solicitud e identidad de la representación seleccionada;
  • tipo y valor del validador, junto con los campos condicionales;
  • hora, estado y metadatos devueltos con el 304;
  • respuesta almacenada y campos actualizados;
  • versiones de instantáneas, políticas o dependencias aguas arriba;
  • decisión, control o automatización que utilizó el resultado.

Si el origen no puede vincular la representación con una versión de dependencia, el estado honesto es «representación revalidada; vigencia de dependencias desconocida». Es una afirmación más estrecha, pero también mucho más útil que una insignia verde que mezcla dos preguntas.

Fuentes