Python 3.0+http.serverпонятие
http.server.HTTPServer
серверы
Простой HTTP-сервер поверх socketserver.TCPServer: слушает адрес и на каждый запрос создаёт объект класса-обработчика.
Синтаксис
server = HTTPServer(server_address, RequestHandlerClass, bind_and_activate=True)
Сервер однопоточный: пока обрабатывается один запрос, остальные ждут, и один медленный клиент держит всех — для разработки берут ThreadingHTTPServer. serve_forever() блокирует поток, а shutdown() нужно звать из другого потока: вызов из обработчика того же потока зависает навсегда. Адрес ('', 8000) слушает все интерфейсы, то есть сервер виден из локальной сети; для себя — ('127.0.0.1', 8000), порт 0 — любой свободный.
Примеры
from http.server import HTTPServer, BaseHTTPRequestHandler
# bind_and_activate=False: объект создан, порт не занят — удобно для показа
srv = HTTPServer(('127.0.0.1', 8000), BaseHTTPRequestHandler, bind_and_activate=False)
print(srv.server_address) # → ('127.0.0.1', 8000)
print(srv.RequestHandlerClass.__name__) # → BaseHTTPRequestHandler
srv.server_close()
# в настоящей программе: with HTTPServer(...) as srv: srv.serve_forever()
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности