确定BaseHTTPServer中的站点域名
我正在尝试用Python实现一个简单的服务器,基于HTTPServer。
我想知道如何提取当前请求中关于网站域名的信息?
我的意思是,这个服务器可以同时服务多个域名,比如site1.com和site2.com,我该如何在这段代码中获取这个信息:
from BaseHTTPServer import BaseHTTPRequestHandler, HTTPServer
class MyHandler(BaseHTTPRequestHandler):
def do_GET(self):
print "get"
self.send_response(200)
self.send_header("Content-type", "text/html")
self.end_headers()
#how can i get here host name of serving site?
#site1.com or site2.com ?
domain = ???
self.wfile.write('<html>Welcome on www.%s.com</html>' % (domain))
if __name__ == "__main__":
try:
server = HTTPServer(("", 8070), MyHandler)
print "started httpserver..."
server.serve_forever()
except KeyboardInterrupt:
print "^C received, shutting down server"
server.socket.close()
1 个回答
1
我想你应该能读取Host头信息。头信息可以通过BaseHTTPRequestHandler.headers来访问。