开发者

ASP.NET cache on client or server

If you set caching (as below) in an HTTP handler, will it be cached on the server or client or both?

_context.Response.Cache.SetCacheability(HttpCacheability.Public);
_context.Resp开发者_高级运维onse.Cache.SetExpires(DateTime.Now.AddSeconds(180));


For the following call:

_context.Response.Cache.SetCacheability(HttpCacheability.Public);

it turns out that in addition to setting the Cache-Control: public HTTP header, it also enables server-side output caching.


This sets the http header, which means it will be cached by:

  • The client
  • A server "on the way" to the client, such as an ISA server


The code you used above will cache the content on the clients browser.

If the expiry date of the content is within the time specified then the browser (client side) will issue a 304 "Not Modified" i.e. The Content is cached and not re fetched from the server.

Hope this helps

G


Cache-Control: public to specify that the response is cacheable by clients and shared (proxy) caches.

http://msdn.microsoft.com/en-us/library/system.web.httpcacheability(VS.71).aspx

Regards --Jocke

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜