• 締切済み

proxyはどこを見てキャッシュに情報があると判断しているのか教えてください

環境:クライアントA,B⇔Proxy⇔webサーバ 前提:クライアントAはWebサーバへアクセスしa.htmlをgetしている。 クライアントBがWebサーバへアクセスしa.htmlをgetする際、 間に入っているProxyサーバ内に「a.html」がキャッシュされている為 ProxyからクライアントBにa.htmlファイルが渡されます。 その際のProxy内のアクションについて質問です。 ProxyサーバはクライアントBからどの情報基にa.htmlが自分の キャッシュ内に存在すると判断しているのでしょうか? 自分の考えでは  ファイル名だけだとa.htmlの内容が変更された場合、  変更前の情報を渡してしまうと思っており、クライアントAのアクセスから得た  a.htmlファイルにハッシュ関数を使用して任意のIDを付けた上でキャッシュに格納し  クライアントBからa.htmlのget要求を受けた場合、ハッシュ関数を使用してハッシュ値  を求め、キャッシュ内のIDを見て判断しているではと考えております。 以上です。 よろしくお願いします。

みんなの回答

  • 774danger
  • ベストアンサー率53% (1010/1877)
回答No.2

http://labs.cybozu.co.jp/blog/kazuho/archives/2006/02/utilizing_cache.php にsquidのデフォルトの例が書かれています

dimension4
質問者

お礼

回答いただきありがとうございました。 おかげさまで、URL毎にHTTPヘッダーにあるlast-modifiedとExpiresを 見てキャッシュに格納している情報を使用するか判断していると いう事は分かりましたが、 回答につけられていたURLの以下の部分に関して ここから===================================================== 同じウィンドウの中で、 ページA を読み、次にページB を読み、そしてページA を再び読み込むようなケースでは、2回目にページ A を表示する際にはキャッシュのデータが使用され、 =====================================================ここまで 特に『2回目にページ A を表示する際にはキャッシュのデータが使用され』の部分に関して、 どのようなロジックで、キャッシュ内のどの場所に格納されている『ページA』の情報を 見つけ出し、クライアントにページAを返しているのでしょうか? よろしくお願いします。

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

ふつうに考えれば、URL毎にHTTPヘッダーにあるlast-modifiedとExpiresを みて判断していると思いますが・・・

dimension4
質問者

お礼

回答ありがとうございました。 ANo.2に返答させていただきましたが、追加質問に関して 回答いただければ幸いです。 よろしくお願いします。

関連するQ&A

専門家に質問してみよう