====== HTTP dynamisch bis hin zum Application Server====== ===== Dynamik im Server... ===== Wenn ein Server nicht stumpf Ressourcen ausliefert (also z.B. einen Request 1:1 mit einer bestimmten Datei beantwortet), dann beginnt Dynamik. Dazu kann er * die URL im Request programmatisch auswerten und * sich zu einem bestimmten Client den //Zustand// merken (z.B. über Cookies). Werden die Zustände bestimmter Clients auch über Sitzungen hinweg gespeichert (in einer Datenbank) oder folgen Requests/Response einer programmatischen Ablauflogik, dann mutiert der Webserver allmählich zum //Application Server//. Die "programmatische" Auswertung der URL eines Requests wurde schon in einem früheren Kapitel angedeutet. ===== ... und im Client. ===== Der Browser kann natürlich auch dynamisch sein und nicht nur die HTML Seite gut darstellen, Unter anderem gibt es mit //JavaScript// eine Möglichkeit, wie in das HTML-Dokument Code eingebettet werden kann, der nach Aufbau der HTML-Darstellung durch den Browser interpretiert wird und mit dem * der Inhalt der Darstellung oder die Form der Webseite nachträglich/fortlaufend verändert werden kann, * der Nutzer der Webseite interagieren kann oder * im Hintergrund weitere Ressourcen vom Webserver abgefragt und in die aktuelle Webseitendarstellung eingebaut werden kann. ===== Beispiel ===== (ein zugegeben etwas einfältiges...) __Szenario__: Die Webseite soll die **Uhrzeit** anzeigen! * **Lösungsversuch1**: Statischer Webserver liefert //uhrzeit.html// aus. Dann stimmt die Uhrzeit genau einmal pro Tag :-) 12:05:31 * **Lösungsversuch 2**: Dynamischer Webserver liefert die Uhrzeit zum Zeitpunkt des Request/Response aus: https://app.qgelm.de/clock Der kleine Teil des Programmcodes sieht dann wie folgt aus (das ganze ist eingebettet in ein Python Web-Application-Framework namens //web2py//): import datetime # ---- index page ---- def index(): clock = datetime.datetime.utcnow().strftime("%H:%M:%S") return dict(message=clock) * **Lösungsversuch 3**: Statischer Webserver liefert JavaScript-Code dazu aus: http://schulung.qgelm.de/uhrzeit.html
---- [[schulung:htcp|HTTP Erweiterung...]] oder [[schulung:browser_und_server|Zurück zum Anfang]]