나는 브라우저가 페이지를 캐싱하지 못하도록하는 데 필요한 ASP.NET 코드에 대한 명확한 참조를 찾고 있습니다. HTTP 헤더와 메타 태그에 영향을 미치는 방법은 여러 가지가 있으며, 다른 브라우저가 올바르게 작동하려면 다른 설정이 필요하다는 인상을 받았습니다. 모든 브라우저에서 작동하는 코드와 버전을 포함한 특정 브라우저에 필요한 코드를 주석으로 처리하는 것은 정말 좋을 것입니다.
이 문제에 대한 많은 정보가 있지만 각 방법의 이점과 특정 기술이 상위 수준의 API로 대체되었는지 여부를 설명하는 좋은 참조를 아직 찾지 못했습니다.
특히 ASP.NET 3.5 SP1에 관심이 있지만 이전 버전에 대한 답변을 얻는 것도 좋을 것입니다.
이 블로그 항목 에서는 Firefox와 IE 캐싱의 두 가지 중요한 차이점에 대해 몇 가지 HTTP 프로토콜 동작 차이점을 설명합니다.
다음 샘플 코드는 내가 관심있는 종류를 보여줍니다.
public abstract class NoCacheBasePage : System.Web.UI.Page
{
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
DisableClientCaching();
}
private void DisableClientCaching()
{
// Do any of these result in META tags e.g. <META HTTP-EQUIV="Expire" CONTENT="-1">
// HTTP Headers or both?
// Does this only work for IE?
Response.Cache.SetCacheability(HttpCacheability.NoCache);
// Is this required for FireFox? Would be good to do this without magic strings.
// Won't it overwrite the previous setting
Response.Headers.Add("Cache-Control", "no-cache, no-store");
// Why is it necessary to explicitly call SetExpires. Presume it is still better than calling
// Response.Headers.Add( directly
Response.Cache.SetExpires(DateTime.UtcNow.AddYears(-1));
}
}