it-gundan.com

캐시 제어를위한 강력하고 빠른 규칙은 무엇입니까?

Confession : 내가 유지하는 사이트는 주로 서버의 기본 구성에 따라 캐시 제어에 대해 다른 규칙이 있으며 페이지 속도 & Y-Slow Firefox 플러그인 및 Google Speed ​​Tracer 의 네트워크 리소스보기 Cache-Control은 수행하려는 작업에 따라 개인/공개로 설정되며, ETag/Last-Modified 헤더는 Y-Slow가 잘못된 것을 제안하고 Amazon의 파일을 수동으로 gzip으로 압축 할 때 Vary-Accept-Encoding이 필요한 경우에만 땜질됩니다 CloudFront.

다양한 옵션에 대한 자료와 그 내용을 읽을 때 충돌하는 정보, 깨진 프록시 규칙 및 cargo cult 구성이있는 것 같습니다. 위에서 언급 한 분석 도구가 제공하는 공식 정보는 통일 된 전략이 아닌 개별 주제를 개별적으로 다루기 때문에 접근하기가 쉽지 않습니다 (따라서 기술에 대한 상호 참조는 없습니다).

예를 들어, 속도 분석 도구가 ETag가있는 사이트를 캐싱에 도움이되는 사이트가없는 사이트와 동일하게 평가하는 것은 말이되지 않습니다.

플랫폼에 무관 한 캐시 제어 전략을위한 강력하고 빠른 규칙은 무엇입니까?

편집 :

링크 ~ Jeff Atwood의 기사 는 캐싱을 깊이있게 설명합니다.

기록을 위해 여기에 어렵고 빠른 규칙이 있습니다.

GZIP 등을 사용하여 파일을 압축하는 경우-프록시가 압축 버전을 지원하지 않는 클라이언트에게 압축 버전을 반환 할 수 있으므로 "캐시 제어 : 개인"을 사용하십시오 (브라우저 캐시는이 파일을 표시합니다) 그래도). 또한 압축 가능하다는 "Vary : Accept-Encoding"을 포함해야합니다.

ETag와 함께 Last-Modified 사용-벨트와 괄호 사용은 두 검증기 모두를 제공하는 반면, ETag는 수정 시간 대신 파일 내용을 기반으로하며, 모든베이스를 모두 사용합니다. NOTE :AOL 's PageTest 어떤 이유로 ETag에 대해 개별적인 블랜치 접근 방식이 있습니다. 하나 이상의 서버에서 Apache를 사용하여 동일한 컨텐츠를 호스팅하는 경우, 진정으로 사용하지 않는 한 FileETag 지시문에서 제외하여 ETag에서 암시 적으로 선언 된 inode를 제거하십시오 (예 : "FileETag MTime Size"). 동일한 라이브 파일 시스템.

가능한 "캐시 제어 : 공개"사용-이것은 페이지의 나머지 부분에 HTTP 인증 등이 필요한 경우에도 프록시 서버 (및 브라우저 캐시)가 콘텐츠를 반환 함을 의미합니다.

15
Metalshark

먼저 서버 팜/클러스터를 사용하지 않는 한 Yahoo와 같이 ETag를 제거하지 마십시오. 변경되지 않은 동일한 파일이 항상 동일한 ETag를 반환하는 한 매우 유용한 지시어입니다.

다른 헤더와 관련하여 Yahoo의 모범 사례 는 정적 파일에 대해 Expires 헤더를 먼 미래에 설정하도록 제안하고 동적 콘텐츠에 Cache-Control를 사용하십시오. 그러나 Cache-control는 정적 컨텐츠에 완벽하게 적합합니다 (그들 사이에는 거의 차이가 없습니다).

캐시 된 정적 파일을 변경하는 경우 파일 이름을 변경하거나 끝에 고유 한 매개 변수를 추가해야합니다 (예 : example.com/styles.css?v=2. 아래 주석에서 언급했듯이 실제 파일 이름을 변경하는 것이 좋습니다.

또한 원하는대로 YSlow 규칙을 편집하고 Etag 규칙을 제거하고 고유 한 도메인을 CDN으로 추가 할 수 있습니다. 이 기사는 또한 잘 읽습니다. Yahoo의 문제는 당신의 문제가 아닙니다

8
DisgruntledGoat

캐싱을 사용하도록 리소스의 요청 헤더 변경 대부분의 사람들에게 캐싱을 가능하게하는 방법은 웹 호스트/서버의 .htaccess 파일에 코드를 추가하는 것입니다.

이는 웹 호스트에서 파일 관리자 (또는 파일을 추가하거나 업로드 할 때마다)로 이동한다는 의미입니다.

.htaccess 파일은 사이트의 많은 중요한 사항을 제어합니다. .htaccess 파일에 익숙하지 않은 경우, .htaccess로 작업 한 기사를 읽고 변경하기 전에 방법을 알아보십시오.

아래 코드는 브라우저에게 캐시 할 내용과 "기억하는 시간"을 알려줍니다. .htaccess 파일 맨 위에 추가해야합니다.

## EXPIRES CACHING ##
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg "access 1 year"
ExpiresByType image/jpeg "access 1 year"
ExpiresByType image/gif "access 1 year"
ExpiresByType image/png "access 1 year"
ExpiresByType text/css "access 1 month"
ExpiresByType text/html "access 1 month"
ExpiresByType application/pdf "access 1 month"
ExpiresByType text/x-javascript "access 1 month"
ExpiresByType application/x-shockwave-flash "access 1 month"
ExpiresByType image/x-icon "access 1 year"
ExpiresDefault "access 1 month"
</IfModule>
## EXPIRES CACHING ##

.htaccess 파일을 저장 한 다음 웹 페이지를 새로 고치십시오.

출처:
https://varvy.com/pagespeed/leverage-browser-caching.html

0
Nomib Nomib