Python库httplib2是否使用GET字符串缓存URI?

Python库httplib2是否使用GET字符串缓存URI?,python,caching,httplib2,Python,Caching,Httplib2,在下面的示例中,正确缓存了什么?是否需要为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"

在下面的示例中,正确缓存了什么?是否需要为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作为缓存键,因此在本例中,示例中的每个URL都将由客户端单独缓存

对于httplib2的
\uuuu init\uuuuu.py
文件中的章节,如果您想要证明,请查看第1000行左右对缓存的调用:

cachekey = defrag_uri
cached_value = self.cache.get(cachekey)
碎片整理uri由函数
urlnorm
(第170ish行)定义,包括方案、权限、路径和查询


当然,正如您所知,服务器可能会以完全不同的方式解释“资源”的定义,因此仍然可能返回缓存的内容。因为在这种情况下听起来像是你在控制服务器,所以你完全可以控制那里,所以没有问题。无论哪种方式,在客户端,对示例中3个URL的第一次调用都不会使用客户端缓存值。

httplib2使用完整URI作为缓存键,因此在这种情况下,示例中的每个URL都将由客户端单独缓存

对于httplib2的
\uuuu init\uuuuu.py
文件中的章节,如果您想要证明,请查看第1000行左右对缓存的调用:

cachekey = defrag_uri
cached_value = self.cache.get(cachekey)
碎片整理uri由函数
urlnorm
(第170ish行)定义,包括方案、权限、路径和查询

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