Python - HTTP Server

Die Python-Standardbibliothek verfügt über einen integrierten Webserver, der für die einfache Kommunikation mit Webclient-Servern aufgerufen werden kann. Die Portnummer kann programmgesteuert zugewiesen werden, und auf den Webserver wird über diesen Port zugegriffen. Obwohl es sich nicht um einen voll funktionsfähigen Webserver handelt, der viele Arten von Dateien analysieren kann, kann er einfache statische HTML-Dateien analysieren und sie bereitstellen, indem er sie mit den erforderlichen Antwortcodes beantwortet.

Das folgende Programm startet einen einfachen Webserver und öffnet ihn an Port 8001. Der erfolgreiche Betrieb des Servers wird durch den Antwortcode 200 angezeigt, wie in der Programmausgabe gezeigt.

import SimpleHTTPServer
import SocketServer
PORT = 8001
Handler = SimpleHTTPServer.SimpleHTTPRequestHandler
httpd = SocketServer.TCPServer(("", PORT), Handler)
print "serving at port", PORT
httpd.serve_forever()

Wenn wir das obige Programm ausführen, erhalten wir die folgende Ausgabe:

serving at port 8001
127.0.0.1 - - [14/Jun/2018 08:34:22] "GET / HTTP/1.1" 200 -

Einen lokalen Host bedienen

Wenn wir den Python-Server als lokalen Host festlegen, der nur den lokalen Host bedient, können wir dazu das folgende Programm verwenden.

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()

Wenn wir das obige Programm ausführen, erhalten wir die folgende Ausgabe:

Serving HTTP on 127.0.0.1 port 8000 ...