Стандартная библиотека Python поставляется со встроенным веб-сервером, который можно использовать для простого взаимодействия между сервером и веб-клиентом. Номер порта может быть назначен программно, и доступ к веб-серверу осуществляется через этот порт. Хотя это не полнофункциональный веб-сервер, который может анализировать многие виды файлов, он может анализировать простые статические HTML-файлы и обслуживать их, отвечая на них необходимыми кодами ответов.
Приведенная ниже программа запускает простой веб-сервер и открывает его на порту 8001. Успешная работа сервера указывается кодом ответа 200, как показано в выходных данных программы.
import SimpleHTTPServer import SocketServer PORT = 8001 Handler = SimpleHTTPServer.SimpleHTTPRequestHandler httpd = SocketServer.TCPServer(("", PORT), Handler) print "serving at port", PORT httpd.serve_forever()
Когда мы запускаем вышеуказанную программу, мы получаем следующий вывод:
serving at port 8001 127.0.0.1 - - [14/Jun/2018 08:34:22] "GET / HTTP/1.1" 200 -
Служа местному хозяину
Если мы решим сделать сервер Python локальным хостом, обслуживающим только локальный хост, то мы можем использовать следующую программу для этого.
import sys import BaseHTTPServer from SimpleHTTPServer import SimpleHTTPRequestHandler HandlerClass = SimpleHTTPRequestHandler ServerClass = BaseHTTPServer.HTTPServer Protocol = "HTTP/1.0" if sys.argv[1:]: port = int(sys.argv[1]) else: port = 8000 server_address = ('127.0.0.1', port) HandlerClass.protocol_version = Protocol httpd = ServerClass(server_address, HandlerClass) sa = httpd.socket.getsockname() print "Serving HTTP on", sa[0], "port", sa[1], "..." httpd.serve_forever()
Когда мы запускаем вышеуказанную программу, мы получаем следующий вывод: