Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
| Nächste Überarbeitung | Vorherige Überarbeitung | ||
| schulung:http_dynamisch [2022/01/15 12:22] – angelegt Thomas | schulung:http_dynamisch [2022/01/31 15:53] (aktuell) – [Beispiel] Thomas | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| ====== HTTP dynamisch bis hin zum Application Server====== | ====== 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), | Wenn ein Server nicht stumpf Ressourcen ausliefert (also z.B. einen Request 1:1 mit einer bestimmten Datei beantwortet), | ||
| Zeile 5: | Zeile 8: | ||
| Dazu kann er | Dazu kann er | ||
| - | a) die URL im Request programmatisch auswerten und | + | * die URL im Request programmatisch auswerten und |
| - | + | | |
| - | b) 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/ | Werden die Zustände bestimmter Clients auch über Sitzungen hinweg gespeichert (in einer Datenbank) oder folgen Requests/ | ||
| Die " | Die " | ||
| + | |||
| + | ===== ... und im Client. ===== | ||
| + | |||
| + | Der Browser kann natürlich auch dynamisch sein und nicht nur die HTML Seite gut darstellen, | ||
| + | |||
| + | Unter anderem gibt es mit // | ||
| + | |||
| + | * der Inhalt der Darstellung oder die Form der Webseite nachträglich/ | ||
| + | * 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__: | ||
| + | |||
| + | * **Lösungsversuch1**: | ||
| + | <code html> | ||
| + | < | ||
| + | < | ||
| + | 12:05:31 | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | * **Lösungsversuch 2**: Dynamischer Webserver liefert die Uhrzeit zum Zeitpunkt des Request/ | ||
| + | |||
| + | Der kleine Teil des Programmcodes sieht dann wie folgt aus (das ganze ist eingebettet in ein Python Web-Application-Framework namens // | ||
| + | <code python> | ||
| + | import datetime | ||
| + | |||
| + | # ---- index page ---- | ||
| + | def index(): | ||
| + | clock = datetime.datetime.utcnow().strftime(" | ||
| + | return dict(message=clock) | ||
| + | |||
| + | </ | ||
| + | |||
| + | * **Lösungsversuch 3**: Statischer Webserver liefert JavaScript-Code dazu aus: http:// | ||
| + | <code html> | ||
| + | < | ||
| + | < | ||
| + | |||
| + | <body onload=" | ||
| + | |||
| + | <div id=" | ||
| + | |||
| + | < | ||
| + | function startTime() { | ||
| + | const today = new Date(); | ||
| + | let hh = today.getHours(); | ||
| + | let mm = today.getMinutes(); | ||
| + | let ss = today.getSeconds(); | ||
| + | hh = (hh < 10) ? " | ||
| + | mm = (mm < 10) ? " | ||
| + | ss = (ss < 10) ? " | ||
| + | |||
| + | document.getElementById(' | ||
| + | setTimeout(startTime, | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | </ | ||
| + | </ | ||
| + | |||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | [[schulung: | ||
| + | |||
| + | oder [[schulung: | ||