Getting Host field from HTTP request in BaseHTTPRequestHandler

Alex picture Alex · Apr 21, 2011 · Viewed 11k times · Source

I'm writing a script using BaseHTTPRequestHandler class. And in do_GET(self) method I need to get the content of the Host field from the HTTP request. I can do it by regexping the str(self.headers) like proposed here: Determine site domain in BaseHTTPServer, but it's kinda ugly and I wonder if there's cleaner way to do that.

Thanks in advance.

Answer

samplebias picture samplebias · Apr 21, 2011

The attribute self.headers is a dictionary-like structure, so you can do this:

def do_GET(self):
    host = self.headers.get('Host')

When the header does not exist, None is returned.