.NET MVC What is the best way to disable browser caching?

Posted by Chameera Dedduwage on Stack Overflow See other posts from Stack Overflow or by Chameera Dedduwage
Published on 2014-06-03T09:20:59Z Indexed on 2014/06/03 9:24 UTC
Read the original article Hit count: 133

As far as my research goes, there are several steps in order to make sure that browser caching is disabled. These HTTP headers must be set:

Cache-Control: no-cache, no-store, must-revalidate, proxy-revalidate
Pragma: no-cache, no-store
Expires: -1
Last-Modified: -1

I have found out that this can be done in two ways:

Way One: use the web.config file

<add name="Cache-Control" value="no-store, no-cache, 
    must-revalidate, proxy-revalidate"/>
<add name="Pragma" value="no-cache, no-store" />
<add name="Expires" value="-1" />
<add name="Last-Modified" value="-1" />

Way Two: use the meta tags in _Layout.cshtml

<meta http-equiv="Cache-Control" content="no-cache, no-store,
    must-revalidate, proxy-revalidate" />
<meta http-equiv="Pragma" content="no-cache, no-store" />
<meta http-equiv="Expires" content="-1" />
<meta http-equiv="Expires" content="-1" />

My Question: which is the better approach? Or, alternatively, are they equally acceptable? How do these all relate to different platforms? Which browsers would honor what headers?

In addition, please feel free to add anything I've missed, if any.

© Stack Overflow or respective owner

Related posts about asp.net-mvc

Related posts about security