웹 응답을 저장했다가 다시 쓰는 캐시는 응답의 ‘나이’를 따진다. 받은 지 11초이고 허용 나이가 30초라면 아직 신선할까요? 아래 기록을 한 시간선에 붙여 판단해 볼까요? 모든 시각은 같은 기준의 초이며 실제 사이트 측정값은 아니에요.
응답 날짜는 0초, 요청은 15초, 수신은 19초예요. 응답의 Age 값은 15초이고 max-age는 30초예요. 다른 신선도 지시의 우선순위나 오래된 응답의 특별한 재사용 허가는 이 사례에서 다루지 않아요.
수신 시 날짜로 센 나이는 19−0=19초예요. Age에는 요청부터 수신까지의 19−15=4초를 더해요. 이 사례는 두 값 중 큰 값을 초기 나이 R로 써요. 두 계산 모두 19초여서 어느 값을 택해도 같아요.
현재 시각을 t, 응답의 전체 나이를 C(t)라 해 볼까요? 수신 뒤 저장된 시간은 t−19초이므로 다음처럼 더해요. 여기서는 t≥19입니다.
신선 판정은 30>C(t)라는 엄격한 일차부등식이에요. 따라서 29초에는 신선, 30초에는 신선하지 않다는 카드를 붙여요. 받은 뒤 흐른 시간은 각각 10초와 11초여도, 허용 나이는 수신 때부터 새로 시작하지 않아요. Age 값 15에 저장 시간 11만 더한 26은 요청·수신 사이 4초를 빠뜨린 계산이에요.
시간선에는 0→15→19→29→30을 표시하고, ‘수신 뒤 경과시간’과 ‘전체 나이’를 다른 색으로 적어 볼까요? 이 답은 지정한 신선도 식의 판정이에요. 30초에 파일이 삭제되거나 화면이 자동 갱신된다는 뜻은 아니에요.
출처·착안: IETF RFC9111, HTTP Caching 4.2·5.1·5.2.2.1. 알려진 신선도 계산을 바탕으로 시간 기록과 두 판정 시점을 새로 정했다.
