在下面的例子中什么被正确缓存?是否有一个会发生变化报头我必须设置的服务器端用于GET字符串?

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")
有帮助吗?

解决方案

httplib2会使用完整的URI缓存键,所以在这种情况下,每个在你的榜样,你有网址,将客户端分别缓存。

有关篇章,段落从__init__.py文件httplib2的,如果你想证明,看看调用到缓存周围行1000:

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

在defrag_uri由函数urlnorm(线170ish)限定,并包括该方案,授权,路径和查询。

当然,如你所知,该服务器可以解释的“资源”完全不同的定义和,因此,仍然可以返回缓存的内容。因为它听起来像你控制这种情况下的服务器,你有完全的控制那里,所以没有问题。无论哪种方式,在客户端侧,将有用于的示例中,第一呼叫到每个3个URL的没有客户缓存的值。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top