title: How to serve any file type with Python's BaseHTTPRequestHandler
body: <p>Consider the following example:</p>
  
  <pre><code>import string,cgi,time
  from os import curdir, sep
  from BaseHTTPServer import BaseHTTPRequestHandler, HTTPServer
  
  class MyHandler(BaseHTTPRequestHandler):
  
      def do_GET(self):
          try:
              if self.path.endswith(".html"):
                  f = open(curdir + sep + self.path) #self.path has /test.html
  #note that this potentially makes every file on your computer readable by the internet
  
                  self.send_response(200)
                  self.send_header('Content-type',    'text/html')
                  self.end_headers()
                  self.wfile.write(f.read())
                  f.close()
                  return
  
          except IOError:
              self.send_error(404,'File Not Found: %s' % self.path)
  
  
  def main():
      try:
          server = HTTPServer(('', 80), MyHandler)
          print 'started httpserver...'
          server.serve_forever()
      except KeyboardInterrupt:
          print '^C received, shutting down server'
          server.socket.close()
  
  if __name__ == '__main__':
      main()
  </code></pre>
  
  <p>What if I want to server a ZIP file also... how would I do that?
  I don't think this line would work right?</p>
  
  <pre><code>self.wfile.write(f.read())
  </code></pre>