태그 보관물: http

http

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

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

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

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



답변

브라우저 캐싱을 비활성화하는 유일한 올바른 방법은 웹 응용 프로그램 자체의 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 헤더를 살펴 보는 것이 좋습니다 . 상관 관계를 그와 마크 노팅엄의 캐싱 튜토리얼 나는 이미 위의 링크 – 나는 헤더가 캐싱을 허용하거나 적어도 표정 캐싱을 금지하지 않습니다 같은데요.


답변

올바른 만료 헤더를 설정했는지 확인하십시오. 시간을 과거에 입력하면 컨텐츠가 캐시되지 않습니다. IS9가 실행되는 워크 스테이션에서 시간 / 날짜를 확인하십시오. 참조 : http://www.mnot.net/cache_docs/


답변

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


답변

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

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

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


답변

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

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

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


답변