1

先週、私たちのサイトでキャッシュの問題のように見える奇妙な問題が発生しました。Content-Type: text/vnd.wap.wml; charset=utf-8私たちのページのバージョンは、ヘッダーに設定されてキャッシュされました。

調査の結果、asp .netが%SystemRoot%\Microsoft.NET\Framework\versionNumber\CONFIG\Browsersパス内の.browserファイルを使用して、特定のユーザーエージェントに適したmimeタイプを決定していることがわかりました。上記のコンテンツタイプに基づくと、Nokiaの携帯電話は、上記のコンテンツタイプに基づいてキャッシュをクリアした後、最初にページにアクセスしたアプリケーションのようです。aspは、キャッシュされたバージョンのページを、ではなくそのコンテンツタイプで保存しました。text/html。そのコンテンツタイプの問題は、ブラウザがそれを認識せず、ページをプレーンテキストとして表示するだけであるということです。

上記のシナリオが原因であることが確認できました。サーバーの1つをプールから取り出し、サイトのアプリプールをリサイクルし、iisをリセットしてから、フィドルでページをヒットし、フォローヘッダーをGETとしてホームページに渡しました。

Accept: text/html
User-Agent: NokiaN90-1/3.0545.5.1 Series60/2.8 Profile/MIDP-2.0 Configuration/CLDC-1.1

これにより、期待どおりに応答に次のコンテンツタイプが返されました。

Content-Type: text/vnd.wap.wml; charset=utf-8

今後これを修正するために、aspが提供するコンテンツタイプに基づいてページのさまざまなフレーバーをキャッシュすることは理にかなっていますよね?これを行うようにaspを構成する方法はありますか、またはこのシナリオを処理するためのより良い方法はありますか?

4

1 に答える 1

2

さまざまなコンテンツタイプをさまざまなクライアントに提供する場合は、通常、Vary:User-Agentヘッダーを追加すると思います。例:http ://msdn.microsoft.com/en-us/library/system.web.httpcachevarybyheaders.useragent(v = vs.100).aspx

于 2012-11-29T23:31:25.153 に答える