Python Glossary English

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Сообщить о неточности