答え:
RemoteObject でサーバーから取得したデータはブラウザーのインターネットテンポラリーファイルとしてクライアントマシンに保存されます。このファイルは通信のたびに上書きされますので、ファイルリソースを無用に消費するという性質のものではありませんが、セキュリティーなどの観点でよくないと思われるかもしれません。データはバイナリー形式で保存されています。ですのでテキストエディターなどで簡単に内容を盗み見ることができるというわけではありません。しかし何らかの方法により内容が解読され過去の情報のやり取りがこのファイルから取得されるかもしれません。
このファイルの保存を抑止する方法の一つは RemoteObject リクエストのレスポンスに対してレスポンスヘッダー Cache-Control: no-store を加えるということです。各 Webサーバーにはレスポンスヘッダーを追加する機能があります。この機能を利用して、Flexサーバーが経由する Webサーバーからのレスポンスにレスポンスヘッダー Cache-Control: no-store を加えます。
下図は IIS で この設定を行った例です。

Cache-Control: no-store は、レスポンスデータをキャッシュとしてファイルに残すことを抑止するためのオプションです。この対応を行った場合の明らかな副作用は、同一サイト配下にあるすべてのコンテンツについても同様にキャッシュとしてクライアントのディスクに保存されなくなってしまうということです。毎回内容の変わらない画像データ や Flex アプリケーションである swf もブラウザーを新しく開くたびに毎回サーバーからダウンロードされることになってしまいます。このためこの対応をとりつつ、最大限のパフォーマンスをアプリケーションに期待するのであれば RemoteObject サービスを提供するサイトとそれ以外は分けるべきかもしれません。
考えうるもうひとつの対応策は Flex がインストールされている Webアプリケーションに J2EEフィルターを追加し、RemoteObject リクエストに対してのみレスポンスヘッダー Cache-Control: no-store が付加されるようにすることです。
|