Skip to content

Instantly share code, notes, and snippets.

@fukasawah
Last active July 16, 2021 03:25
Show Gist options
  • Save fukasawah/8c5c2e9865fbcdee5c9cf0aef2af17f8 to your computer and use it in GitHub Desktop.
Save fukasawah/8c5c2e9865fbcdee5c9cf0aef2af17f8 to your computer and use it in GitHub Desktop.
疎通確認用のHTTPサーバ(python3)
'''
Usage) sudo python3 testserver.py 80
'''
import sys
import http.server
class TestHttpRequestHandler(http.server.BaseHTTPRequestHandler):
def do_GET(self):
self.send_response(200)
self.send_header('Content-Type', 'text/plain; charset=utf-8')
self.end_headers()
ip, port = self.client_address
server_name = self.server.server_name
server_port = self.server.server_port
self.wfile.write(f"Client: {ip}:{port}\n".encode())
self.wfile.write(f"Server: {server_name}:{server_port}\n".encode())
self.wfile.write("---Request Line---\n".encode())
self.wfile.write(f"{self.requestline}\n".encode())
self.wfile.write("---Request Headers---\n".encode())
for (k,v) in sorted(self.headers.items(), key=lambda t: t[0]):
self.wfile.write(f"{k}: {v}\n".encode())
if len(sys.argv) > 1:
PORT = int(sys.argv[1])
else:
PORT = 80
with http.server.HTTPServer(("", PORT), TestHttpRequestHandler) as httpd:
print("serving at port", PORT)
httpd.serve_forever()
@fukasawah
Copy link
Author

curl http://111.111.111.111/cgi-bin/test.py とした場合の出力イメージ

Client: 10.7.1.7:45720
Server: vmss-fuka000001.internal.cloudapp.net:80
---Request Line---
GET /cgi-bin/test.py HTTP/1.1
---Request Headers---
Accept: */*
Connection: keep-alive
Host: 111.111.111.111
User-Agent: curl/7.68.0
X-AppGW-Trace-Id: 107d88707015093917e724f777bb9e6d
X-FORWARDED-PORT: 80
X-FORWARDED-PROTO: http
X-Forwarded-For: 222.222.222.222:22048
X-ORIGINAL-HOST: 111.111.111.111
X-Original-URL: /cgi-bin/test.py```

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment