我正在使用httplib从网站抓取大量资源,并且我想以最低的成本获得它,所以我在我的请求上设置了' connection : keep-alive‘HTTP头,但我不确定它是否真的对set服务器允许的尽可能多的请求使用相同的TCP连接。
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
发布于 2014-01-12 05:04:11
您的示例每次通过循环都会创建一个新的TCP连接,因此不会重用该连接。
这个怎么样?
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并丢弃内容。
发布于 2014-01-11 12:41:27
如果您每次都通过循环…销毁HTTPConnection对象,那么它肯定不能重用该连接
https://stackoverflow.com/questions/21054316
复制相似问题