Python 3.14+http.serverпонятие
http.server.HTTPSServer
серверы
HTTPServer с TLS: принимает certfile и keyfile и отвечает по HTTPS. Появился в Python 3.14.
Синтаксис
HTTPSServer(server_address, Handler, bind_and_activate=True, *, certfile, keyfile=None, password=None, alpn_protocols=None)
certfile — обязательный именованный аргумент, без него TypeError. Сертификат читается не в конструкторе, а при активации сокета (server_activate), поэтому с bind_and_activate=False ошибка неверного пути всплывёт позже, при запуске. По умолчанию ALPN объявляет только http/1.1. До 3.14 то же делали руками: ssl.SSLContext.wrap_socket поверх server.socket.
Примеры
from http.server import HTTPSServer, BaseHTTPRequestHandler
srv = HTTPSServer(('127.0.0.1', 8443), BaseHTTPRequestHandler,
bind_and_activate=False, certfile='missing.pem')
print(srv.certfile, srv.alpn_protocols) # → missing.pem ['http/1.1']
srv.server_close()
try:
HTTPSServer(('127.0.0.1', 8443), BaseHTTPRequestHandler, bind_and_activate=False)
except TypeError as e:
print('TypeError') # → TypeError — certfile обязателен
См. также
Частые ошибки
Открыть в полном глоссарииdocs.python.orgСообщить о неточности