특정 웹 사이트에 대한 클라이언트 브라우저 캐싱을 해제하는 방법이 있습니까?


10

이것은 브라우저와 무관 한 질문이지만 IE9로 테스트하고 있습니다.

사용자가 방문하는 웹 앱 중 하나가 임의로 캐시되고 변경 사항이 표시되지 않습니다. 다른 사이트에는이 문제가 없으며 다른 사람에게는 발생하지 않는다고 주장하는 공급 업체와 협력했습니다. 개발자 툴바를 사용하고 "서버에서 강제로 새로 고침"을 선택하면 모든 것이 올바르게 업데이트됩니다.

이 문제를 진정으로 해결하는 대신이 특정 사이트에 대해 캐시를 비활성화하여 문제를 해결하는 것이 좋습니다. 그러나 우리는 방법을 모른다.

답변:


10

브라우저 캐싱을 비활성화하는 유일한 올바른 방법은 웹 응용 프로그램 자체의 HTTP 헤더입니다. 2000 년 이후 브라우저에는 HTTP 1.1 "Cache-Control"헤더만으로도 충분합니다. 그러나 추가 보호를 위해 서버는 HTTP 1.1 "Cache-Control"및 HTTP 1.0 "Expires"헤더를 모두 방출 할 수 있습니다 .

캐시 무효화를 처리하는 해킹이지만 때로는 본 방법은 서버 URL 의 "캐시 버스터"문자열 입니다. 캐시 버스터는 종종 타임 스탬프 기반이며 URL을 고유하고 한 번만 사용하도록 각 HTML 링크에 쿼리 문자열로 추가됩니다. 같은 것 http://example.org/filename.html?cb=<timestamp+random_value>. 이것은 추악하며 HTTP 헤더가 훨씬 잘하지 않는 것은 없습니다. 그러나 제한된 대상을위한 핵 (인트라넷의 FX) 또는 적절한 HTTP 헤더와 함께 추가 보호 계층으로 사용될 수 있습니다.

AFAIK는 Internet Explorer 내 에서만 단일 사이트에 대한 캐싱을 선택적으로 비활성화 할 수있는 방법이 없습니다 . 하나의 (피의 복잡한) 솔루션은 LAN에 중간 캐시Varnish 캐시 를 설치 하고 Internet Explorer가 Varnish를 HTTP 프록시로 사용하도록 설정 한 다음 Vnish 언어를 Varnish 에서 사용 하여이 특정 사이트에 대해서만 HTTP 헤더를 다시 작성하는 것입니다.

솔직히, 나는 당신의 벤더가 여기서 실수하고 있다고 생각합니다. IE 용 Fiddler2 또는 Firefox 용 Firebug 를 설치 하고 웹 응용 프로그램이 보내는 실제 HTTP 헤더를 살펴 보는 것이 좋습니다 . 상관 관계를 그와 마크 노팅엄의 캐싱 튜토리얼 나는 이미 위의 링크 - 나는 헤더가 캐싱을 허용하거나 적어도 표정 캐싱을 금지하지 않습니다 같은데요.



0

문제가있는 웹 사이트의 내용을 수정할 수없는 경우 프록시 서버를 사용하여 브라우저로 전달되는 내용을 수정할 수 있습니다. 만료 헤더를 변경할 수 있습니다.


0

웹 사이트에서 HTTPS를 통해 연결할 수있는 경우 브라우저에 따라 암호화 된 페이지 캐싱을 비활성화 할 수 있습니다.

IE에서는 다음과 같이 수행 할 수 있습니다.

인터넷 옵션-> 고급-> 보안-> 암호화 된 페이지를 디스크에 저장하지 않음에서 IE 설정을 다시 확인할 수 있습니다.


그는 브라우저에 구애받지 않는 솔루션을 요청했습니다.
Mircea Vutcovici

1
@Mircea 이는 IS 브라우저 불가지론 용액. 방금 IE를 사용하여 훌륭한 예제를 제공했습니다. 다른 많은 브라우저에는 SSL 캐싱을 비활성화하는 옵션이 있지만 설정은 다른 위치에 있습니다.
JeffG

0
<meta http-equiv="PRAGMA" content="NO-CACHE">

http://www.zann-marketing.com/developer/20051018/stop-browser-caching-using-meta-tags.html

URL 표시 줄에서 임의의 키를 사용하는 것이 좋습니다. 이렇게하면 브라우저 내에서 캐싱도 방지됩니다.


만약 GollyJer가 웹 사이트를 수정하는 능력이 있다면 이것은 효과가있을 것입니다. 나는 그가 그의 질문에 근거하지 않는 것을 수집합니다.
JeffG

정확하게 말하면, "랜덤 키"는 캐싱을 효과적으로 방지하지 못합니다. 브라우저와 중간 캐시는 여전히 디스크에 응답을 저장할 수 있습니다. 그러나 다음에 동일한 파일이 요청되면 임의의 키로 URL이 달라 지므로 디스크에 캐시 된 버전이 사용되지 않습니다. 새로운 표현이 서버에서 다운로드되어 디스크에 캐시 될 수 있습니다. 또한 META PRAGMA 태그는 오래되어 사용해서는 안됩니다. 권장 사항은 HTTP Expires 및 Cache-Control 헤더를 사용하는 것입니다.
Jesper M
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.