2011-11-04 3 views
0

캐시 제어 헤더 용으로 PHP에 작은 래퍼를 작성하고 있습니다. 특정 구현을하기 전에 몇 가지 세부 사항을 곧바로 얻고 싶었습니다.캐시 제어 헤더

나는 모든 지시어와 그 지시 사항을 알고 있지만, 그 중 일부는 충돌 할 수있는 것처럼 보입니다. 나는 no-cache이 존재한다면, 다른 Cache-Control 지시문이 존재하지 않아야한다고 가정하고 있습니다. 그리고 실제로는 요청 헤더이기 때문에 이 아닌 세트가 Pragma: no-cache입니다.

s-maxage의 존재는 public을 의미합니까? private 지시문은 publics-maxage을 제거해야합니다. 이 방법으로 no-store, no-transform, must-revalidate 또는 proxy-revalidate으로 설정하는 경고가 있습니까? 서로 충돌하는 다른 지침이 있습니까?

no-cache이고 갱은 캐시가 아닌 지시문 (예 : Expires 등)과 충돌합니까?

답변

1

내 경험에 비추어 볼 때, 모든 캐시 헤더와 지시문을 이론적으로 올바르게 얻었더라도 브라우저와 프록시가 말한대로 수행하는지 여부는 다른 문제입니다. 나는 테스트 (고통 스럽다) 주위에 방법이 있다고 생각하지 않는다. 특히 태블릿 및 모바일 기기가 너무 많습니다. http://www.procata.com/cachetest/ 조금 도움이 될 수 있습니다. 신뢰할 수있는 캐시 테스트 프레임 워크에 대해 알고 있지 않습니다.

그런 다음 HTTP 1.0 및 HTTP 1.1 지시문에는 다소 혼란이 있습니다. 일반적으로 이전 버전과의 호환성은 있지만 (테스트해야합니다). 나는 HTTP 1.0 지시어를 완전히 무시하는 것을 고려할 것이다. (Pragma : No-cache는 만료) HTTP 1.1에 중점을 둔다.

캐시 지시문의 계층 구조는 http://palisade.plynt.com/issues/2008Jul/cache-control-attributes/에 설명되어 있습니다. 귀하의 질문 중 일부는 거기에 응답됩니다. 즉, HTTPbis 워킹 그룹에 의견을 보내, 그것을 대답하지 않는 경우