【问题标题】:Does the Python library httplib2 cache URIs with GET strings?Python 库 httplib2 是否使用 GET 字符串缓存 URI?
【发布时间】:2010-10-17 14:11:18
【问题描述】:

在以下示例中,正确缓存了什么?我必须为 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")

【问题讨论】:

    标签: python caching httplib2


    【解决方案1】:

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

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

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

    defrag_uri 由函数 urlnorm(第 170 行)定义,包括方案、权限、路径和查询。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多