tests/get-with-headers.py
author Alexis S. L. Carvalho <alexis@cecm.usp.br>
Fri, 07 Jul 2006 14:33:51 -0300
changeset 2582 276de216d2c5
parent 2532 84655f721f39
permissions -rwxr-xr-x
Respect "Connection: close" headers sent by HTTP clients. A HTTP client can indicate that it doesn't support (or doesn't want) persistent connections by sending this header. This not only makes the server more compliant with the RFC, but also reduces the run time of test-http-proxy when run with python 2.3 from ~125s to ~5s (it doesn't affect it with python 2.4, which was already ~5s).

#!/usr/bin/env python

__doc__ = """This does HTTP get requests given a host:port and path and returns
a subset of the headers plus the body of the result."""

import httplib, sys
headers = [h.lower() for h in sys.argv[3:]]
conn = httplib.HTTPConnection(sys.argv[1])
conn.request("GET", sys.argv[2])
response = conn.getresponse()
print response.status, response.reason
for h in headers:
    if response.getheader(h, None) is not None:
        print "%s: %s" % (h, response.getheader(h))
print
sys.stdout.write(response.read())