2009-04-04 7 views
1

次の例では、何が正しくキャッシュされていますか?私はGET文字列のためにサーバー側を設定する必要がある可変ヘッダーがありますか?Pythonライブラリhttplib2はGET文字列でURIをキャッシュしますか?

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

httplib2は完全なURIをキャッシュキーに使用するため、この例では、サンプルのURLはクライアントごとに別々にキャッシュされます。 httplib2ため__init__.pyファイルから章や詩のために

、あなたが証拠をご希望の場合は、行約1000上のキャッシュへの呼び出しを見てみましょう:

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

defrag_uriが機能urlnormによって定義されます(行170ish)、スキーム、権限、パス、およびクエリを含みます。

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

関連する問題