요약

  • Cache-Groups를 사용하면 저장된 응답이 하나 이상의 불투명하고 대소문자를 구분하는 그룹 식별자를 선언할 수 있습니다.
  • 그룹 소속은 동일한 캐시와 URI 오리진 안에서만 의미를 가지며, 캐시 간 또는 오리진 간 조율 프로토콜이 아닙니다.
  • 안전한 요청에 담긴Cache-Group-Invalidation은 무시해야 합니다. 안전하지 않은 요청에서는 지정된 그룹을 공유하는 저장 응답을 무효화할 수 있습니다.
  • 그룹 무효화는 다른 캐시 확장이 이를 강화하지 않는 한 선택 사항이며, 무효화된 응답으로 새로 연관된 그룹으로는 연쇄 전파되지 않습니다.

RFC 9875는 HTTP 캐싱에 명명과 시그널링 계층을 추가합니다. 응답은 하나 이상의 그룹 문자열을 담을 수 있으며, 이를 통해 캐시는 해당 응답을 같은 오리진 아래의 다른 저장 응답과 연관 지을 수 있습니다. 식별자는 불투명합니다. 그 의미는 캐시와 오리진을 운영하는 당사자들에게 속하며, 대소문자도 구별됩니다. 따라서 그룹은 소유권, 네임스페이스 규율, 명시적 권한 모델이 필요한 통제 지점입니다.

캐시 경계가 먼저 옵니다. 그룹은 서로 독립적인 캐시 사이에 공유 객체를 만들지 않으며, 서로 다른 URI 오리진의 응답을 연관 짓지도 않습니다. 리버스 프록시, 브라우저 캐시, 중간 장치 또는 다른 캐시는 각자의 상태와 각자의 확장 해석을 가질 수 있습니다. RFC 9875는 이들 사이의 동기화를 확립하지 않습니다. 한 캐시의 그룹 상태를 전역 삭제 장부처럼 취급하면 로컬 시그널이 보장되지 않는 운영상 가정으로 변합니다.

무효화 경계도 똑같이 중요합니다. 별도의 캐시 확장이 이를 강화하지 않는 한, 사양상 그룹 무효화는 선택 사항입니다. 안전하지 않은 요청에 대한 응답은 저장 응답을 무효화할 수 있는 그룹을 지명할 수 있습니다. 같은 필드가 안전한 요청에 담기면 무시해야 하므로, 메서드 분류는 튜닝 선호가 아니라 강제 처리 사항입니다. 무효화는 또한 연쇄되지 않습니다. 한 응답이 영향을 받았다는 이유만으로 새로 연관된 그룹이 재귀적으로 추적되지 않습니다.

여기서 두 가지 실패 모드가 생깁니다. 관련 응답이 저장된 채로 남으면, 상태 변경 작업 후 사용자가 오래된 표현을 만날 수 있습니다. 식별자가 너무 넓거나 권한이 부주의하게 공유되면, 무효화 하나가 다른 테넌트의 콘텐츠에 영향을 줄 수 있습니다. 공유 오리진 호스팅은 이 권한 리스크를 구체적으로 만듭니다. 호스트가 접근을 통제하지 않으면 한 당사자가 다른 당사자의 자원과 그룹을 형성하거나 그 자원을 무효화할 수 있습니다. 불투명한 이름이 그 거버넌스 문제를 없애주지는 못하며, 오히려 명명과 발급 정책을 더 중요하게 만듭니다.

실질적인 결정은 헤더 하나가 사이트를 마법처럼 퍼지할 수 있는지가 아닙니다. 정의된 캐시, 오리진, 권한 체계가 로컬 동작과 분산 일관성을 혼동하지 않고 그룹 식별자를 사용할 수 있는지가 문제입니다. 서비스는 그룹을 발행하거나, 무시하거나, 강화 확장에 의존할 수 있지만, 어떤 동작이 기대되는지와 무엇이 보장 밖에 남는지를 문서화해야 합니다.

출처