HSL 2.0-Framework
Beschreibung des Frameworks
|
Alle Methoden des HTTP-Servers. Mehr ...
Öffentliche Methoden | |
def | __init__ (self, framework, context_map) |
Konstruktor. Mehr ... | |
def | set_authentication (self, user=None, pw=None, digest=False) |
Setzt die HTTP-Authentifizierung: Mehr ... | |
def | set_address (self, ip, port) |
Setzt die IP-Adresse und den IP-Port. Mehr ... | |
def | set_error_callback (self, callback) |
Setzt eine Callback-Methode für den Fehlerfall. Mehr ... | |
def | set_max_post_size (self, size) |
Setzt die zulässige Größe des Body für POST/PUT-Aufrufe. Mehr ... | |
def | set_logger (self, logger) |
Weist dem Server eine hsl20_4.hsl20_4.Logger Instanz zu. Mehr ... | |
def | start_server (self) |
Startet den Server. Mehr ... | |
def | register_uri (self, method, path, callback) |
Registriert eine URI am Server. Mehr ... | |
def | set_server_name (self, name) |
Setzt den Server-Name. Mehr ... | |
Alle Methoden des HTTP-Servers.
Bietet einen Server-Dienst zur Kommunikation per HTTP.
Wurde der HTTP-Server vom Framework erzeugt und an eine IP und einen Port gebunden, kann dieser gestartet werden.
Erfolgen nun Aufrufe durch einen Client, gibt es zwei Möglichkeiten:
Nach Abarbeitung der jeweiligen Callback-Methode sendet der Server die erzeugte Antwort an die Gegenstelle. Wird im response-Objekt kein Statuscode gesetzt, antwortet der Server mit Statuscode 501.
Bei der Registrierung einer URI können direkt eine oder mehrere HTTP-Methoden (per logischem ODER, z.B. hsl20_4_http_server.GET|hsl20_4_http_server.PUT) definiert werden, alternativ kann man auch hsl20_4_http_server.ALL zuweisen, dann wird die Callback-Methode bei jeder Methode aufgerufen. Der HTTP-Server bietet direkte Unterstützung für die folgenden Methoden:
Bei den Methoden POST und PUT wird ein Body-Element im Request unterstützt, hierfür muss im Header das Feld "Content-length" gesetzt sein. Sollte der Client die maximal zulässige Größe überschreiten, wird die Verbindung durch den Server getrennt.
Siehe auch hsl20_4_http_server.Server::set_max_post_size
Folgende Timeouts, bei deren Eintreten die Verbindung getrennt wird, sind zu beachten:
Es besteht die Möglichkeit, die Zugriffe auf den Server mit Benutzer/Passwort zu sichern. Über die Methode hsl20_4_http_server.Server.set_authentication kann die Authentifizierung aktiviert und deaktiviert werden. Zur Übermittlung der Benutzerdaten stehen folgende zwei Varianten zur Verfügung:
RESULT = BASE64(Benutzername + ":" + Passwort)
HA1 = MD5(BENUTZERNAME + ":" + REALM + ":" + PASSWORT) HA2 = MD5(UPPERCASE(HTTP_METHODE) + ":" + URI) RESULT = MD5(HA1 + ":" + NONCE_SERVER + ":" + NONCE_COUNTER + ":" + NONCE_CLIENT + ":auth:" + HA2)
Die Verwendung dieser Klasse anhand eines kurzen Quellcode-Ausschnitts:
def hsl20_4_http_server.hsl20_4_http_server.Server.__init__ | ( | self, | |
framework, | |||
context_map | |||
) |
Konstruktor.
def hsl20_4_http_server.hsl20_4_http_server.Server.register_uri | ( | self, | |
method, | |||
path, | |||
callback | |||
) |
Registriert eine URI am Server.
Wird diese URI von einem Client aufgerufen, wird das übergebene Callback ausgeführt.
method | int HTTP-Abrufmethoden. Es werden per ODER mehrere Optionen pro URI unterstützt. Es stehen folgende Konstanten zur Verfügung:
|
path | string Pfad (z.B.: /index) |
callback | function Callback. Die hier übergebene Methode benötigt folgende Parameter: |
def hsl20_4_http_server.hsl20_4_http_server.Server.set_address | ( | self, | |
ip, | |||
port | |||
) |
def hsl20_4_http_server.hsl20_4_http_server.Server.set_authentication | ( | self, | |
user = None , |
|||
pw = None , |
|||
digest = False |
|||
) |
Setzt die HTTP-Authentifizierung:
Die Authentifizierung zählt für alle registrierten URIs.
user | string Benutzer |
pw | string Passwort |
digest | bool Optional. Wenn TRUE wird als Authenifizierungsmechanismus "Digest Access Authentication" verwendet, ansonsten "Basic Authentication". |
def hsl20_4_http_server.hsl20_4_http_server.Server.set_error_callback | ( | self, | |
callback | |||
) |
Setzt eine Callback-Methode für den Fehlerfall.
Wird aufgerufen, wenn der Client eine nicht mit register_uri registrierte URL aufruft. Wird vom HTTP-Server nach Beenden dieser Methode ausgewertet.
callback | function Die Callback-Methode benötigt folgende Parameter:
|
def hsl20_4_http_server.hsl20_4_http_server.Server.set_logger | ( | self, | |
logger | |||
) |
Weist dem Server eine hsl20_4.hsl20_4.Logger Instanz zu.
logger | hsl20_4.Logger Logger-Objekt |
def hsl20_4_http_server.hsl20_4_http_server.Server.set_max_post_size | ( | self, | |
size | |||
) |
Setzt die zulässige Größe des Body für POST/PUT-Aufrufe.
Wird der Wert überschritten, wird der Aufruf abgebrochen.
Standardwert: 1.000.000 Byte
Zulässiger Höchstwert (MAXWERT): 10.000.000 Byte
size | int Größe in Byte. Ist size > MAXWERT wird size = MAXWERT gesetzt! |
def hsl20_4_http_server.hsl20_4_http_server.Server.set_server_name | ( | self, | |
name | |||
) |
Setzt den Server-Name.
Wenn gesetzt, wird dieser Wert bei einem HTTP-Request als Standard-Wert für das Feld 'Server' verwendet. Der hier gesetzte Wert kann mit response.set_header überschrieben werden. Wenn kein Wert per set_server_name angegeben wird und kein Wert per response.set_header angegeben wird, wird der Context als Server-Name übermittelt.
name | string Neuer Server-Name |
def hsl20_4_http_server.hsl20_4_http_server.Server.start_server | ( | self | ) |
Startet den Server.
AttributeError | Wird ausgelöst, wenn keine gültige Adresse angegeben ist. |