上面提到过,VaryByParam属性是托管的。
上面提到过,VaryByParam属性是托管的。如果你忽略它的话,运行时就会抛出异常。VaryByParam属性不允许用空字符串作为其值,因此如果不需以参数分类,就把该属性设置为None。
大多数的浏览器和中间代理服务器会使用任何过期信息,这些信息由Web服务器嵌入到生成的HTML页面中。有两个HTTP 1.1标记和页面缓冲有关:Expires和Cache-Control。
HTTP Expire标记被用来指定什么时候客户端应该更新服务器上的某个页面。在这之前,任何向浏览器发出的对该资源的请求都会由本地客户端缓存响应,而不必连接到服务器上。
当指定并没有设置为No-Cache时,HTTP 1.1 Cache-Control一般会采用public或private值。private值使得只有浏览器才能缓存页面,而代理服务器不行。Cache-Control是HTTP 1.1规范的一部分,只有IE 5.5或以上版本才支持。
如果你看看由ASP.NET在允许输出缓冲条件下生成的HTTP标记,你会注意到有时用到了Pragma标记,特别是当缓冲被设置成Server时。在这样的情况下,标记被指定为No-Cache,这意味着在浏览器和代理服务器中都不能使用客户端缓冲。结果是,任何对该页面的访问都要连接到服务器。准确地说,将Pragma标记设置为No-Cache只禁止了经由HTTP通道的缓冲。如果通过非安全通道来访问页面,它实际上被缓存了但是被标记为过期的。
阅读推荐
相关文章