우리는 "실수로 중요한 정보 (예 : 백업 테이프 :)의 실수로 릴리스되거나 유지되는 것을 방지")하고 HTTP 헤더 Cache-control : no-store를 사용할 계획입니다. 그렇게하는 것의 아래쪽면은 무엇입니까? 스펙을 보면 캐싱이 계속 작동하는 것처럼 보입니다. 단지 비 휘발성 스토리지를 사용할 수 없기 때문입니다. 어떤 응답을 저장할지 지정하기 위해 "감도"를 측정합니다. 우리가 사용해야하는 균형점 측정은 무엇입니까? 즉, 모든 페이지를 매장에 표시하지 않는 이유는 무엇입니까?캐시 제어를 사용할 때의 단점은 무엇입니까?
답변
저장소를 사용하면 클라이언트에 사용할 수있는 로컬 캐시가 있습니다. 이 캐시는 성능을 향상시키고 사용자 서버의로드를 줄입니다.
귀하의 경우에는 중요한 페이지를 캐싱없이 보내도록하는 것이 좋습니다.
노 스토어의 또 다른 기술적 인 문제는 믿을만한 부작용입니다. 이전 버전의 IE에는 캐싱 기능이 해제 된 Content-Disposition 헤더에 문제가 있습니다. 이 동작은 다운로드 프롬프트에 무기한 0 %의 진행률이 적용되는 것과 같습니다.
노 캐싱 정책에 대한 오해 중 하나는 브라우저가 실제로이를 준수하고 디스크에 저장하지 않는다는 것입니다. 이것은 사실이 아닙니다. 많은 현대의 브라우저는 실제로 모든 응답을 디스크에 캐시합니다 (이 내용은 SO 참조). 그러나이 캐시 은 이러한 경우에으로 암호화됩니다.
전반적으로 나는 그렇게하는 것이 안전하다고 생각합니다. @ Robert Harvy가 말한대로이 메커니즘에 의존하지 않도록하십시오. 일단 브라우저를 보내면 브라우저를 저장하는 방법이 마음에 들게됩니다.
감사합니다. 귀하의 첫 단락은 내가 생각한 것입니다 만, 측정하기가 어렵습니다. 우리 앱에는 많은 중요한 정보가 있으며 캐싱은 매우 유용합니다. 우리는 캐싱을 유지하고 균형 잡힌 방식으로 디스크 스토리지를 피할 수 있기를 희망합니다. 예, 이것이 완전한 보안 수정 사항이 아니라는 것이 확실합니다. 악의적 인 사용자가 사용자 계정에 액세스 할 수있는 경우, 예를 들어 사용자가 원하는대로 데이터를 처리 할 수있는 브라우저로 브라우저를 대체 할 수 있습니다. 이 상황에서이 정보를 찾는 것이 더 복잡해 지도록 노력하고 있습니다. 기계의 보안을 보장 할 수는 없습니다. –
성능 저하가 염두에두고 있습니다. 하지만 일단 브라우저에 뭔가를 보내면 더 이상 제어 할 수 없으므로 캐시 정책을 조작하는 것이 성취 할 것인지 잘 모르겠습니다. –
사용자의 컴퓨터에 액세스하는 interloper (따라서 브라우저의 캐시 파일)가 중요한 페이지에 액세스하지 못하게해야합니다. 대부분의 최신 브라우저는'no-store' 지시어로 무언가를 이해하고 수행하는 것처럼 보입니다. –