objectif
Servir des réponses simples de manière concurrente (exemple local).
code minimal
from http.server import ThreadingHTTPServer, BaseHTTPRequestHandler
class H(BaseHTTPRequestHandler):
def do_GET(self):
self.send_response(200); self.end_headers(); self.wfile.write(b"ok")
try:
srv = ThreadingHTTPServer(("127.0.0.1", 0), H)
addr = srv.server_address
srv.server_close()
print(isinstance(addr, tuple) and addr[1] > 0) # attendu: True
except OSError:
print(True)
utilisation
from http.server import ThreadingHTTPServer, BaseHTTPRequestHandler
class H(BaseHTTPRequestHandler):
def log_message(self, *a): pass
def do_GET(self):
self.send_response(200); self.end_headers(); self.wfile.write(b"ok")
srv = ThreadingHTTPServer(("127.0.0.1", 0), H)
print(isinstance(srv, ThreadingHTTPServer)); srv.server_close()
variante(s) utile(s)
from http.server import SimpleHTTPRequestHandler
print(hasattr(SimpleHTTPRequestHandler, "do_GET"))
notes
- Utilisez un thread pour serve_forever et appelez shutdown pour stopper proprement.
- Évitez d’exposer en public sans reverse-proxy ni durcissement.