2012-09-30 2 views
2

누군가 캐싱에 대한이 설명을 명확히 할 수 있습니까?만료 및 캐시 제어 설정 : 최대 - 연령

https://developers.google.com/speed/docs/best-practices/caching

모두 ExpiresCache-Control: max-age, 또는 Last-ModifiedETag를 모두 지정하는 지정 중복 말한다.

그런 다음 나중에는

핑거 프린팅 메커니즘은 서버가 앞서 요청 일로부터 정확히 일년에 Expires 헤더를 설정할 수 있습니다 말한다; 파일이 마지막으로 수정 된 날짜의 Last-Modified 헤더 Cache-Control: max-age 헤더는 3153600입니다.

이 후자의 진술은 ExpiresCache-Control을 모두 설정하지 않는 것에 대한 반대입니다.

첫 번째 문이 표준이고 두 번째 문이 예외입니까? 아니면이 문서가 단순히 자신의 권장 사항과 반대되는 것입니까? 무엇이 제안 되었습니까?

감사합니다.

답변

2

음 ...

첫 번째 문이 올바른지 당신이 정말로 그들 모두를 할 수 있기 때문에 모두 [만료] [맥스 에이지] 헤더를 지정할 필요가 없기 때문에 나는 당신을 말할 수있다 똑같은 점 (캐싱의 최대 기간 설정)

[Last Modify]와 [Etag]는 둘 다 주소 신선도와 동일합니다.

나중에 예를 들자면 [만료]와 [최대 - 연령] 헤더를 모두 사용하므로 약간의 혼란이 있음에 동의합니다.

언뜻보기에 이것은 일종의 문서 오류처럼 보입니다. 당신이하지 않는 동안

아직도, 당신은 모두 [만료] 및 사용을 가지고 것을 기억해야합니다 [맥스 에이지], 당신은 분명히 단지만큼 그들이 가리로, 둘 다 사용할 수 있습니다 동일한 날짜 - 제공하는 예와 같습니다. ("나쁜"필요하지 않은, 그리고 "그냥"낭비 될 수 있습니다) 중복에 대한

첫 번째 문 회담 :

을 요약합니다. 나중에 제공하는 예제는 최적화되지 않았지만 문제가 발생하지 않습니다.

두 개의 헤더를 사용하여 다른 만료 날짜를 설정하지 않는 한 괜찮습니다.

+0

+1 "중복은 나쁘지 않습니다". 아마도 헤더 중 하나가 작동하지 않는 경우를 대비하여 가능한 모든 클라이언트를 대상으로 지정합니다. – user123444555621

10

Http의 [Cache-Control : max-age] 및 [Expires]는 동일한 작업을 수행하므로 중복되는 이유입니다. 하지만 여전히 큰 차이점이 있습니다. [Cache-Control]은 http/1.1 표준이고 Expires는 http/1.0입니다. 클라이언트 브라우저가 http/1.1을 지원하지 않는 경우 Cache-Control은 무시되며, 둘 다 사용할 수 있습니다.

둘 다 사용하는 경우 [캐시 제어]가 우선합니다. 자세한 정보는 여기를 참조하십시오 : http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9.3