네트워크가 사용 가능할 때 페이지가 열리고, 그다음 오프라인에서는 스타일과 그림을 잃습니다. HTML은 읽기 세션이 필요로 한 객체 중 하나에 불과했습니다.

포워드 캐시는 자신을 통과하는 적격 응답을 보관합니다. 그것은 미래의 모든 링크를 찾아내지도, HTML에서 언급만 된 자원을 가져오지도, 원본에서 실행되는 애플리케이션을 재현하지도 않습니다.

읽기 집합을 준비하세요

독자에게 필요한 문서, 그 이미지, 스타일시트 및 기타 의존성을 나열하세요. 그다음 세 가지 경우를 구분하세요.

응답 상태오프라인 결과
저장되어 재사용 가능캐시가 요청을 충족할 수 있습니다
저장되었지만 검증 필요원본이 없으면 재사용이 막힐 수 있습니다
저장된 적 없거나 캐시에 없음제공할 응답 바이트가 없습니다

연결을 끊기 전에 한 페이지를 여는 것으로 모든 의존성이 이 공유 캐시에 도달했다고 증명되지는 않습니다. 브라우저가 일부 자원을 자체 로컬 캐시에서 제공했을 수 있습니다.

케이블을 뽑아도 신선도는 살아남습니다

오프라인 운영에는 오래된 콘텐츠에 대한 명시적 정책이 필요합니다. only-if-cached 요청은 협력하는 캐시에 이미 저장된 응답을 요청하는 별도의 방법입니다. HTTP에는 오래된 응답을 사용할 수 있는 시점에 대한 제한이 있으며, 적용되는 재검증 요구 사항도 포함됩니다. 저장된 객체는 이를 무한정 제공할 수 있는 무조건적 허가가 아닙니다.

Squid 7의 offline_mode는 일반적인 검증 시도를 멈추는 특정 배포 옵션입니다. 검증 동작을 바꿀 뿐, 없는 객체를 만들어 내거나 실시간 로그인 흐름을 재구성할 수는 없습니다. 이 지시문은 Squid 8에서 사용할 수 없습니다.

일반 HTTPS CONNECT도 페이지 내용을 TLS 안에 유지합니다. 터널링 프록시는 그 암호화된 바이트에서 재사용 가능한 HTML 및 이미지 객체를 얻지 못합니다.

정해진 공개 읽기 컬렉션에는 전체 작업 집합과 갱신 정책을 계획하고 확인하세요. 임의의 대화형 브라우징에서는 캐시만으로 사용자가 다음에 요청할 수 있는 것의 완전한 오프라인 사본을 약속할 수 없습니다.

관련 글