1

次の例では、何が正しくキャッシュされていますか? GET 文字列用にサーバー側で設定する必要がある Vary-Header はありますか?

import httplib2
h = httplib2.Http(".cache")
resp, content = h.request("http://test.com/list/")
resp, content = h.request("http://test.com/list?limit=10")
resp, content = h.request("http://test.com/list?limit=50")
4

1 に答える 1

4

httplib2 はキャッシュ キーに完全な URI を使用するため、この場合、例にある各 URL はクライアントによって個別にキャッシュされます。

httplib2のファイルの章と節について、__init__.py証拠が必要な場合は、1000 行付近のキャッシュへの呼び出しを見てください。

cachekey = defrag_uri
cached_value = self.cache.get(cachekey)

defrag_uri は関数によって定義されurlnorm(170 行目)、スキーム、権限、パス、およびクエリが含まれます。

もちろん、ご存じのとおり、サーバーは「リソース」の定義をまったく異なる方法で解釈する可能性があるため、キャッシュされたコンテンツを返す場合もあります。この場合、サーバーを制御しているように聞こえるので、サーバーを完全に制御できるので問題ありません。いずれにせよ、クライアント側では、例の 3 つの URL のそれぞれへの最初の呼び出しに使用されるクライアント キャッシュ値はありません。

于 2009-04-04T21:14:14.997 に答える