"마지막으로 수정 된"등을 보내도록 Apache 2.2.3을 설정하는 방법


9

마지막 방문 시간 이후 수정 된 경우에만 브라우저에 객체 (또는 페이지의 모든 항목)를 다시로드하도록 지시합니까 ??? htaccess, httpd.conf ... 제 사건에 대한 준비된 지시가 있습니까? 대단히 감사합니다

답변:



5

참고 Last-Modified헤더가 약한 캐시 헤더입니다. 현재 환경 설정은 Cache-Control헤더 를 사용하는 것 입니다.

구글은 이것에 대한 좋은 기사를 가지고 있습니다.

캐싱 최적화

만료 및 캐시 제어 : 최대 연령. 이는 자원의 "신뢰도 수명", 즉 웹 서버에서 새 버전을 사용할 수 있는지 확인하지 않고 브라우저가 캐시 된 자원을 사용할 수있는 기간을 지정합니다. 무조건 적용되는 "강력한 캐싱 헤더"입니다. 즉, 일단 설정되고 리소스가 다운로드되면 브라우저는 만료 날짜 또는 최대 수명에 도달 할 때까지 리소스에 대한 GET 요청을 발행하지 않습니다.

최종 수정 및 ETag. 이들은 파일이 동일한 지 여부를 판별하기 위해 브라우저가 확인하는 자원에 대한 일부 특성을 지정합니다. Last-Modified 헤더에서 항상 날짜입니다. ETag 헤더에서 이는 리소스를 고유하게 식별하는 모든 값이 될 수 있습니다 (파일 버전 또는 콘텐츠 해시가 일반적 임). Last-Modified는 브라우저가 휴리스틱을 적용하여 항목을 캐시에서 가져올 지 여부를 결정한다는 점에서 "약한"캐싱 헤더입니다. (휴리스틱은 브라우저마다 다릅니다.) 그러나 이러한 헤더를 사용하면 사용자가 페이지를 명시 적으로 다시로드 할 때 조건부 GET 요청을 발행하여 브라우저가 캐시 된 리소스를 효율적으로 업데이트 할 수 있습니다. 조건부 GET은 서버에서 리소스가 변경되어 전체 GET보다 대기 시간이 짧은 경우가 아니면 전체 응답을 반환하지 않습니다.

내가 사용하거나 추천 Cache-Control또는 Expires그들이 강력한 캐시 헤더 때문에 필요에 따라 헤더. 일부 시스템은 마지막 수정 날짜를 무시합니다.

그런 다음 curl또는 http://redbot.org 와 같은 도구를 사용 하여 헤더를 확인할 수 있습니다.


2
FWIW : "약한"은 Google이 만든 것입니다. Expires만료되지 않는 리소스에는 전혀 부적절한 헤더입니다. 일부 리소스는 수정 될 수 있지만 만료 날짜는 아닙니다. 구글의 요점은 Last-Modified조건부 GET 이 필요한 반면 Expires브라우저 캐시는 GET을 완전히 건너 뛸 수 있다는 것입니다.
Dancrumb

1
약한 용어 는 단순히 의미론입니다. 요점은 Last-Modified다른 캐싱 명령이없는 상태에서 헤더 를 사용 하면 캐시 기간이 HTTP 클라이언트에 남는다는 것입니다. Last-Modified날짜 이후에 리소스가 수정되지 않은 경우 리소스가 최신 상태로 간주되어야합니다. 반대로 Expires또는 Cache-Control헤더를 사용하면 원점이 명시 적 재생 기간을 설정할 수 있습니다.
jeffatrackaid

1
"약한"v "강한"은 tools.ietf.org/html/rfc7232#section-2.1에 정의되어 있습니다 ( @Dancrumb 참고)
John Bentley
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.