ASP.NET中cache控制的方法

來源:互聯網
上載者:User

如果你不想讓用戶端緩衝(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的比較感興趣的朋友嗎?我們可以交流交流。

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.