Una página con varios objetos visitada más de una vez. Para cada objeto y cada visita, el navegador decide: servirlo de la caché, revalidarlo con un GET condicional o descargarlo de nuevo. Sigue el árbol de decisión y los mensajes que produce.
200 OK lleva Last-Modified y su frescura explícita: Cache-Control: max-age=N (fresca N segundos desde que se recibió), no-cache (se guarda, pero se revalida siempre) o no-store (no se guarda). Una respuesta sin información de frescura tampoco se guarda.200 OK.no-cache) se revalida con un GET condicional: If-Modified-Since igual al Last-Modified de la copia. El servidor responde 304 Not Modified sin cuerpo si el objeto no ha cambiado (la copia vuelve a ser fresca durante otro max-age) o 200 OK con el objeto nuevo si ha cambiado.Last-Modified se muestra de forma simbólica como «L·versión»; cada cambio en el servidor sube la versión. Las visitas son instantáneas: el modelo dice qué mensajes se envían, no cuánto tardan. Fuera del modelo: ETag, frescura heurística, proxies.