我正在實現一個簡單的REST服務,使用WCF Web API並嘗試設置HTTP頭以緩存響應。WCF Web API中的HTTP緩存在瀏覽器中似乎不一致
對於一個簡單的得到這樣
http://localhost:49302/my/2
響應標題是這樣的:
Server: ASP.NET Development Server/10.0.0.0
Date: Tue, 24 Jan 2012 18:18:44 GMT
X-AspNet-Version: 4.0.30319
Content-Length: 233
Cache-Control: max-age=120
Vary: Accept
Expires: Tue, 24 Jan 2012 18:20:44 GMT
Last-Modified: Tue, 24 Jan 2012 18:18:15 GMT
Content-Type: application/xml; charset=utf-8
這樣做的目的是,客戶端應該緩存的資源兩分鐘。
然而,使用WCF的Web API測試客戶端,該行爲在不同的瀏覽器不一致:前兩分鐘後
- 在Firefox(9.0.1)的請求被高速緩存,是新版本顯示的資源。這種行爲如預期的那樣。
- 在Chrome(16.0.912.77米)中,根本不考慮緩存標頭。每個GET請求都會獲取新版本的資源。這種行爲是沒有預料到的(至少我是這樣)。
- 在Internet Explorer(9)中,行爲與Chrome中的行爲相同。
爲什麼Chrome和IE不尊重緩存頭?
它是WCF Web API測試客戶端中的錯誤嗎?
WCF Web API測試客戶端非常新,所以它可能有一個錯誤。你能直接用瀏覽器測試還是寫一個小測試頁。 – suing