ASP.NET中cache控制的方法

如果你不想让客户端缓存(cache)你服务器上的网页的话,在ASP.NET中可以这样控制:

在Page_Load中写:

Response.Cache.SetCacheability(HttpCacheability.NoCache);

我在测试的时候发现一些有趣的东西:

按HTTP 1.0的标准,你可以在html网页上直接使用 <meta http-equiv="pragma" content="no-cache" />

按HTTP 1.1的标准,你可以用:<meta http-equiv="Cache-Control" content="no-cache" />

为了保险起见当然是两个都用上。

但当我尝试在aspx页中加入这两个meta tag的时候,却看见返回的Response的Http Header里面居然显示Cache-Control: Private。

而且ASP.NET也没有办法通过程序来给Response写入pragma这个Http Header。

最后的方案是在aspx页中加入<meta http-equiv="pragma" content="no-cache" /> ,然后在程序中写Response.Cache.SetCacheability(HttpCacheability.NoCache);

这样,返回的Response里就有我预期的那两个header了:

Pragma: No-Cache

Cache-Control: No-Cache

觉得怪怪的。如果有哪位知道我哪里做错了,请赐教。

 

=========================================================

这里还有一些相关的文章:

How to: Set the Cacheability of an ASP.NET Page Declaratively

How to: Set the Cacheability of an ASP.NET Page Programmatically

还有fiddler这个工具不错,用来调试使用http协议的程序很不错:http://www.fiddlertool.com/fiddler/

 

另:最近多接触Http协议和各类RFC,觉得做标准也真是不容易,事无巨细面面俱到,最后发布了还要被人横挑鼻子竖挑眼。IT业有句话叫:三流企业做产品,二流企业做技术,一流企业做标准。确实也挺有道理。

有对REST和SOAP的比较感兴趣的朋友么?我们可以交流交流。

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值