Я использую сервер https, который обслуживает текущий каталог, используя следующий код.
#!/usr/bin/env python3
from http.server import HTTPServer, SimpleHTTPRequestHandler
import ssl
httpd = HTTPServer(('hostname', 8443), SimpleHTTPRequestHandler)
httpd.socket = ssl.wrap_socket(httpd.socket, keyfile="/Users/test/Desktop/key.pem", certfile="/Users/test/Desktop/cert.pem", server_side=True)
httpd.serve_forever()
Я также хотел, чтобы сервер мог обрабатывать запрос POST с некоторыми значениями. Я хочу регистрировать все, что отправляется как POST в файл. Ранее я использовал сценарии cgi для этой цели. Я имел logger.py
в ./cgi-bin
и заставлял клиентов отправлять POST-запрос на http://hostname:8080/cgi-bin/logger.py
. и вызвал сервер, используя python -m http.server --cgi 8080
Однако из-за моего нового требования обслуживать через https я больше не вызываю http.server из командной строки и использую приведенный выше скрипт. Я понятия не имею, POST-запросы могут быть обработаны без нарушения обычной функциональности обслуживания содержимого внутри папки.