고백 : 유지 관리하는 사이트는 주로 서버의 기본 구성과 페이지 속도 및 Y-Slow Firefox 플러그인 및 Google Speed Tracer 의 네트워크 리소스보기의 권장 사항에 따라 다른 캐시 제어 규칙을 갖습니다 . Cache-Control은 수행하려는 작업에 따라 개인 / 공개로 설정되며, ETag / Last-Modified 헤더는 Y-Slow가 잘못된 것을 제안하고 Amazon의 파일을 수동으로 gzip으로 압축 할 때 Vary-Accept-Encoding이 필요한 경우에만 땜질됩니다 CloudFront.
다양한 옵션에 대한 자료와 그 내용을 읽을 때 충돌하는 정보, 깨진 프록시 규칙 및 화물 컬트 구성에 대한 규칙이있는 것 같습니다 . 위에서 언급 한 분석 도구가 제공하는 공식 정보는 통일 된 전략이 아닌 개별 주제를 개별적으로 다루기 때문에 접근하기가 어렵습니다 (따라서 기술에 대한 상호 참조는 없습니다).
예를 들어, 속도 분석 도구가 ETag가있는 사이트를 캐싱에 도움이되는 사이트가없는 사이트와 동일하게 평가하는 것은 말이되지 않습니다.
플랫폼에 무관 한 캐시 제어 전략을위한 강력하고 빠른 규칙은 무엇입니까?
편집하다:
링크 를 통해 제프 앳 우드의 기사는 뛰어난 깊이 캐싱을 설명합니다.
기록을 위해 여기에 어렵고 빠른 규칙이 있습니다.
파일이 GZIP 등을 사용하여 압축 된 경우 - "cache-control : private"을 사용하여 프록시가 압축 된 버전을 지원하지 않는 클라이언트로 압축 버전을 리턴 할 수 있습니다 (브라우저 캐시는이 방법으로 표시된 파일을 보유합니다). 또한 압축 가능하다고 말하는 "Vary : Accept-Encoding"을 포함해야합니다.
ETag와 함께 Last-Modified를 사용하십시오. 벨트 및 괄호 사용법은 두 유효성 검사기를 모두 제공하는 반면, ETag는 수정 시간 대신 파일 내용을 기반으로하며, 모든베이스를 모두 사용합니다. 참고 : AOL의 PageTest 에는 어떤 이유로 ETag에 대한 고유 한 접근 방식이 있습니다. 둘 이상의 서버에서 Apache를 사용하여 동일한 컨텐츠를 호스팅하는 경우 동일한 라이브 파일 시스템을 사용하지 않는 한 FileETag 지시문 (예 : "FileETag MTime Size")에서 제외하여 ETag에서 암시 적으로 선언 된 inode를 제거하십시오.
가능하면 "캐시 제어 : 공개"를 사용하십시오. 즉, 페이지의 나머지 부분에 HTTP 인증 등이 필요한 경우에도 프록시 서버 (및 브라우저 캐시)가 콘텐츠를 반환합니다.