webserver.py 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. #!/usr/bin/env python3
  2. import os, sys, re
  3. import http.server
  4. import socketserver
  5. class Handler(http.server.SimpleHTTPRequestHandler):
  6. def do_GET(self):
  7. response_body = ""
  8. response_code = 200
  9. if self.path == "/headers":
  10. response_body += self.headers.as_string()
  11. elif self.path == "/port":
  12. response_body += f"answer from port {PORT}\n"
  13. elif re.match(r"/status/(\d+)", self.path):
  14. result = re.match(r"/status/(\d+)", self.path)
  15. response_code = int(result.group(1))
  16. response_body += f"answer with response code {response_code}\n"
  17. elif self.path == "/":
  18. response_body += f"I'm {os.environ['HOSTNAME']}\n"
  19. else:
  20. response_body += "No route for this path!\n"
  21. response_code = 404
  22. self.send_response(response_code)
  23. self.send_header("Content-Type", "text/plain")
  24. self.end_headers()
  25. if len(response_body):
  26. self.wfile.write(response_body.encode())
  27. if __name__ == '__main__':
  28. PORT = int(sys.argv[1])
  29. socketserver.TCPServer.allow_reuse_address = True
  30. httpd = socketserver.TCPServer(('0.0.0.0', PORT), Handler)
  31. httpd.serve_forever()