WCF Web APIで簡単なRESTサービスを実装しており、レスポンスをキャッシュするためにHTTPヘッダーを設定しようとしています。WCF Web APIのHTTPキャッシュがブラウザ間で矛盾しているようです
この
http://localhost:49302/my/2
のような単純なGETのレスポンスヘッダは次のようになります。
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
目的は、クライアントが2分のリソースをキャッシュするべきであるということです。
しかし、行動はさまざまなブラウザ間で矛盾している、WCFのWeb APIテストクライアントを使用して:
- Firefoxでは(9.0.1)要求がキャッシュされ、そして最初の2分後の新しいバージョンですリソースが表示されます。この動作は期待どおりです。
- Chrome(16.0.912.77 m)では、キャッシュヘッダーはまったく尊重されません。すべてのGET要求に対して、新しいバージョンのリソースがフェッチされています。この動作は(少なくとも、私には)期待されていません。
- Internet Explorer(9)では、Chromeと同じ動作になります。
なぜChromeとIEはキャッシュヘッダーを尊重しないのですか?
WCF Web APIテストクライアントのバグですか?
WCF Web APIテストクライアントは非常に新しいので、バグがある可能性があります。ブラウザーで直接テストしたり、小さなテストページを書くことはできますか? – suing