首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >httplib是否重用TCP连接?

httplib是否重用TCP连接?
EN

Stack Overflow用户
提问于 2014-01-11 05:00:11
回答 2查看 9.8K关注 0票数 4

我正在使用httplib从网站抓取大量资源,并且我想以最低的成本获得它,所以我在我的请求上设置了' connection : keep-alive‘HTTP头,但我不确定它是否真的对set服务器允许的尽可能多的请求使用相同的TCP连接。

代码语言:javascript
复制
i = 0
    while 1:
        i += 1
        print i
        con = httplib.HTTPConnection("myweb.com")
        con.request("GET", "/x.css", headers={"Connection":" keep-alive"})
        result = con.getresponse()
        print result.reason, result.getheaders()

我的实现是正确的吗?keep-alive能工作吗?我应该把'con = httplib.HTTPConnection("myweb.com")‘放在循环之外吗?

附言: web服务器对keep-alive的响应是正常的,我知道urllib3

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-01-12 05:04:11

您的示例每次通过循环都会创建一个新的TCP连接,因此不会重用该连接。

这个怎么样?

代码语言:javascript
复制
con = httplib.HTTPConnection("myweb.com")
while True:
    con.request("GET", "/x.css", headers={"Connection":" keep-alive"})
    result = con.getresponse()
    result.read()
    print result.reason, result.getheaders()

此外,如果您只需要headers,则可以使用HTTP HEAD方法,而不是调用GET并丢弃内容。

票数 10
EN

Stack Overflow用户

发布于 2014-01-11 12:41:27

如果您每次都通过循环…销毁HTTPConnection对象,那么它肯定不能重用该连接

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21054316

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档