2011-10-10 4 views
4

우리는 상당히 많은 양의 IIS7.0 사이트 (하루에 약 1 백만 건의 요청)를 보유하고 있으며 많은 이미지/CSS/JS가 있습니다.IIS의 "만료 웹 콘텐츠"공통 http 응답 헤더 설정

이것을 줄이는 가장 빠른 방법은 일반적인 http 응답 헤더를 설정하여 향후 일정 기간 동안 웹 콘텐츠를 만료시켜야하는 것과 궁극적으로 우리가 얻을 수있는 단점을 궁금해하는 것입니다. 이 설정으로 인한 Web.config의 변화를 보면

, 그것은 추가 :

<staticContent> 
    <clientCache cacheControlMode="UseExpires" cacheControlMaxAge="1.00:00:00" httpExpires="Thu, 01 Oct 2020 00:00:00 GMT" /> 
</staticContent> 

내 걱정은 우리가이 설정 한 후 CSS/JS/이미지 중 하나를 변경하고자한다면 즉, 클라이언트가 같으면이다 ' 변경 사항을 픽업하고 이미지가 아마도 변경되지는 않지만 CSS/JS가 확실히 적용됩니다. 그렇다면 에만 개의 이미지가 포함 된 폴더에만이 기능을 설정해야합니까? 또는 CSS/JS에 대해 버전이있는 URL을 도입해야한다는 의미입니까?

답변

5

당신은 항상 정적 콘텐츠 (이미지, CSS, JS) 캐시도

를 캐시한다, 대부분의 브라우저는 여전히 정중하게 (If-Modified-Since) 최신 버전을 사용할 수 있는지에 서버를 문의하고 서버에 응답 할 것이다 a 수정되지 않음. (예 : IE의 기본값은 "새 버전의 페이지 자동 확인")

주의 사항 : 서버와 클라이언트 사이에 다른 프록시가있는 경우이 프록시는 엄격하게 캐시 설정을 선택하여 제공 할 수 있습니다 '오래된'콘텐츠이므로 캐싱의 최적 기간에 대해 생각해 볼 필요가 있습니다.

+0

감사합니다. 따라서 최신 브라우저에서 어쨌든 묻는다면 앞으로 정적 컨텐츠를 만료 시키면 어떤 이점이 있습니까? 내가 볼 수있는 것은 프록시를 통해 지적 할 수있는 단점입니다. – Kram

+0

AFAIK 캐시 시간이 만료 된 경우에도 서버는 콘텐츠가 변경된 경우 (브라우저가 If-Modified-Since이므로) 변경되지 않고 수정되지 않고 콘텐츠를 제공하지 않음으로써 대역폭을 절약하므로 콘텐츠를 제공해야하므로 대부분의 경우 몇 시간 동안 캐싱 만하면됩니다. 그러나 피들러 (Fiddler)와 같은 도구를 사용하면 안전한 측면에있을 수 있습니다. – StuartLC

+0

Chrome과 IE9를 확인하면 둘 다 캐싱이 켜지거나 꺼진 상태에서 동일하게 작동하는 것 같습니다. 아마도 오래된 브라우저/프록시와 관련이 있지만, 최신 브라우저의 경우 차이점이 있는지 알 수 없습니다. 내가 그것을 돌릴 수 있고 "볼"수 있다고 생각하지만, 나는 뭔가보다 더 명확한 것을 기대했다. – Kram