sicheres generieren auf dem webserver - keil## protokolle - hierzu spaeter mehr ... durch hyperlink...
TRANSCRIPT
![Page 1: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/1.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II 71
• private Schlüssel sollten niemals unsicher übertragen werden
• Bei der Anfrage kann eine sog. „Certificate Signing Request“ (CSR) generiert
• Enthält folgende Informationen
• Land
• Bundesland
• Stadt
• Organisation
• Abteilung
• Common Name (Bezeichnung / URL)
• Mail-Adresse
• asymmetrischer privater RSA-Schlüssel verbleibt auf dem Server
Sicheres Generieren auf dem Webserver
![Page 2: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/2.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II
! /dpetrasch/DHBW
CSR generieren
72
openssl req -nodes
-newkey rsa:4096 -sha256 -keyout 'meinedomain_com.key' -out 'meinedomain_com.csr' -subj '/CN=meinedomain.com/C=DE'
• Ein CSR kann bspw. mit OpenSSL generiert werden
• Die Anfrage wird anschließend bei der CA für die Generierung eines
Zertifikats verwendet
![Page 3: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/3.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II
! /dpetrasch/DHBW
Installation auf dem Webserver (nginx)
73
# Domain-Name server_name meinedomain.com www.meinedomain.com;
## SSL / TLS listen 443 ssl;
## Protokolle - hierzu spaeter mehr ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
## Öffentlicher und privater Schluessel ssl_certificate /etc/ssl/meinedomain.com.public; ssl_certificate_key /etc/ssl/meinedomain.com.private;
• Dem Webserver muss mitgeteilt werden, dass eine Website via SSL mit einem
bestimmten Zertifikat bereitgestellt werden soll
• Port ist TCP 443
• Protokolle sind unterschiedlich
• Anpassen der Config unter „/etc/nginx/sites-available/meinedomain.com“
![Page 4: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/4.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II
! /dpetrasch/DHBW
Installation auf dem Webserver (Apache)
74
<VirtualHost *:443> SSLEngine on SSLCertificateFile /etc/ssl/meinedomain.com.public SSLCertificateKeyFile /etc/ssl/meinedomain.com.private # Pfad zu den Webinhalten DocumentRoot /var/www/meinedomain.com/htdocs/
</VirtualHost>
• Dem Webserver muss mitgeteilt werden, dass eine Website via SSL mit einem
bestimmten Zertifikat bereitgestellt werden soll
• Port ist TCP 443
• Protokolle sind unterschiedlich
• Anpassen der Config unter „/etc/apache2/sites-available/ssl.conf“
![Page 5: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/5.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II
! /dpetrasch/DHBW
Installation auf dem Webserver (Apache)
75
<VirtualHost *:443> SSLEngine on SSLCertificateFile /etc/ssl/meinedomain.com.public SSLCertificateKeyFile /etc/ssl/meinedomain.com.private # Pfad zu den Webinhalten DocumentRoot /var/www/meinedomain.com/htdocs/
</VirtualHost>
• Dem Webserver muss mitgeteilt werden, dass eine Website via SSL mit einem
bestimmten Zertifikat bereitgestellt werden soll
• Port ist TCP 443
• Protokolle sind unterschiedlich
• Anpassen der Config unter „/etc/apache2/sites-available/ssl.conf“
![Page 6: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/6.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II 76
tr.im/modbes
Installation auf dem Webserver (Windows IIS)
![Page 7: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/7.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II 77
• SSL ist mehr als nur ein Protokoll, sondern vielmehr eine Familie von Protokollen
• Unterstützung von Fallback für altere Systeme
• Verschiedene Plattform erfordern unterschiedliche Protokollstandards
Welche Protokolle sollen verwendet werden?
![Page 8: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/8.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II 78
• Wo?Ist ein Fehler im (veralteten) SSLv3-Protokoll Sicherheitslücke ist seit 1999 anwendbar.
• Warum schlimm? Verschlüsselte Datenpakete können durch eingeschleusten Javascript-Code entschlüsselt
werden. Dies kann auch durch Dritte als „Man-in-the-middle“-Attacke durchgeführt werden.
• Wie schützen? Serverseitig SSLv3 Protokoll deaktivieren, bzw. TLS_FALLBACK_SCSV verwenden.
Poodle
![Page 9: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/9.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II 79
• Wo?Ist ein Fehler in OpenSSL 1.0.1 bis 1.0.1f und wurde ab 1.0.1g behoben
• Warum schlimm? Ursprüngliche „Heartbeat“ (periodische Kontaktaufnahme) Funktion kann überlastet werden und es
können Teile des aktiven Arbeitsspeichers (bis zu 64kb) ausgelesen werden. Wiederholt können somit
Benutzerpasswörter und private Schlüssel abgerufen werden.
• Wie schützen? OpenSSL serverseitig aktualisieren.
Heartbleed
![Page 10: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/10.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II 80
tr.im/ssltest
SSL Verbindungstest (Qualys SSL Labs)
![Page 11: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/11.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II 81
• Kostenlose Web- und SMIME-Zertifikate stellt StartSSL aus
• Ebenfalls möglich: günstige Code-Signing-Certificates und Wildcard-SSL
• Let’s Encrypt ist eine neue - kostenlose - CA.
• automatische Verlängerung mit einem Serverdienst
• kostenfrei
• automatische Installation und CSR
Good to know: StartSSL und Let’s Encrypt
![Page 12: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/12.jpg)
Anfragen dynamisch beantwortenServerseitige Programmierung
![Page 13: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/13.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II 83
• bedeutet, dass serverseitige Programme erstellt und ausgeführt werden, um
• Daten aus Datenbanken zu lesen,
• Daten in Datenbanken zu schreiben und
• Webseiten dynamischen aufzubauen,
• bevor die Webseite zum Benutzer geschickt wird
Serverseitige Programmierung
![Page 14: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/14.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II
Serverseitige Programmierung
84
DatenbankserverWebserverClient (Webbrowser)
dynamische Inhalteclientseitig statischer Inhalt dynamische Inhalte
serverseitig
interpretiert mittelsclientseitiger
Webtechniken
Webserver fügt mittelsserverseitiger
Webtechniken ein
![Page 15: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/15.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II
Auslieferung statischer Web-Inhalte
85
Webserver
Client (Webbrowser)
Statische Inhalteaus Filesystem
Anfrage an den Webserver durch Hyperlink oder Direktaufruf
Request / Response im HTTP-Protokoll- Aufbau TCP-Verbindung- HTTP-Request, der vom Web-Deamon entgegengenommen wird- Zurücksenden der Informationen über dieselbe Verbindung- Schließen der Verbindung
Darstellung auf Clientdurch Interpretation von HTML / CSS
![Page 16: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/16.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II
Auslieferung dynamischer Web-Inhalte
86
Webserver
Client (Webbrowser)
Statische Inhalteaus Filesystem
Skriptsprachen, Plugins, JAVA-Applets, Komponenten, DHTML, Flash
SSI, PHP/ASP, J2EE, CGI
Datenbank
client- und serverseitige Erweiterungen machendynamische Webinhalte möglich
je nach Anwendungszweck soll überlegt werden, welche dynamischen Inhalte clientseitig und welche serverseitig realisiert werden
![Page 17: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/17.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II 87
• Erweitern statische Webseiten um dynamische Inhalte
• Clientseitig
• Bewegung im Browser (Animation)
• Interaktive Elemente
• Serverseitig
• Generieren der Seite erst bei Aufruf
• Integration aktueller Daten aus Datenbanken und anderer Systemen
• Einbinden speziell für diesen Abruf relevanter Daten
Dynamische Webtechniken
![Page 18: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/18.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II 88
• Zur serverseitigen Programmierung stehen mehrere konkurrierende Technologien zur
Verfügung
• Unterschiede in der Leistungsfähigkeit und unterstützten Plattformen
• Wichtige Vertreter
• CGI und Perl
• PHP
• ASP und ASP.NET
• Coldfusion
• Java-Servlets und JSP
• Node.JS
Serverseitige Programmierung
![Page 19: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/19.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II 89
• CGI = Common Gateway Interface
• CGI definiert eine Schnittstelle zwischen dritter Software und Webserver, die es
ermöglicht, mit Programmen auf dem Webserver Anfragen vom Browser zu
bearbeiten und Webseiten dynamisch zu generieren
• CGI kann dazu die Eingaben von HTML-Formularen verarbeitenCGI startet für jede
Anfrage einen eigenen Prozess auf dem Server, weshalb die Performance des
Webservers bei vielen Anfragen sinkt
Serverseitige Programmierung: CGI
![Page 20: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/20.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II 90
• Perl ist eine Skriptsprache, die zur Laufzeit interpretiert wird und daher als
Interpretersprache keinen Compiler benötigt.
• Perl setzt nur einen auf dem Server installierten Perl-Interpreter voraus
• Perl hat Ähnlichkeiten zur C-Syntax und wurde ursprünglich für Unix-Plattformen
entwickelt, um schnell kleine Programme für die Netzwerkentwicklung schreiben zu
können
• Perl besteht aus einfachen ASCII-Zeichen
• Perl ist frei erhältlich (GPL) es gibt eine kleinere, aber recht rege Perl-Fan-Gemeinde
• Perl wird oft im Zusammenhang mit CGI verwendet, obwohl Perl ursprünglich nicht
speziell für CGI entwickelt wurde
Serverseitige Programmierung: CGI
![Page 21: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/21.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II
Funktionsweise von Perl in Verbindung mit CGI
91
Client (Webbrowser)
PerlInterpreterWebserver CG
I
Server-BetriebssystemResponse .*pl (HTML)
Request *.pl
STDOUT
![Page 22: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/22.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II
! /dpetrasch/DHBW
Ausführung CGI = Aufruf über CLI
92
<?php echo "Dies ist eine dynamische Ausgabe! \n";
date_default_timezone_set("Europe/Berlin"); $timestamp = time(); $uhrzeit = date("H:i",$timestamp);
echo "Uhrzeit: " . $uhrzeit . "\n";?>
• Ausführung auch über die Konsole möglich
![Page 23: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/23.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II 93
• Node.js ist eine Laufzeitumgebung zur Ausführung verschiedenen Diensten
• Ausführung von serverseitigem Quellcode erfolgt in einem Prozess, der auch
weitere Prozesse starten kann
• Es existieren Module für HTTP-Webserver und WebSocket-Server, die als Basis für
die Entwicklung eines Webprojekts verwendet werden
• Anfragen werden von einem Webserver (bspw. Apache oder nginx) lediglich an den
Node-Prozess weitergegeben
• Der Webserver fungiert hier als Reverse-proxy
Serverseitige Programmierung: Node.js
![Page 24: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/24.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II
Funktionsweise von Node.js und einem Reverse-Proxy
94
Client (Webbrowser)
Node ProzessWebserver
Server-BetriebssystemResponse ./index (HTML)
Request /index
Reverse Proxy
![Page 25: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/25.jpg)
dynamische Lastenverteilung und RessourcenaufteilungCloud
![Page 26: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/26.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II 96
• Texterkennung innerhalb von PDF-Dokumenten als „Software-as-a-Service“
• Eine eigene Schnittstelle (API) stellt Funktionen für den Upload und Verarbeitung
eines PDF-Dokuments bereit
• Dokument wird zwischengespeichert
• OCR wird auf das Dokument angewendet
• PDF-Dokument wird optimiert
• Abrechnung
• Bereitstellung des Ergebnisses
Beispiel: Dokumentenverarbeitung als SaaS
![Page 27: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/27.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II
SaaS: Mit eigener Infrastruktur
97
1.Annahme der Datei2.Zwischenspeichern der Datei und
Einsortieren in eine Verarbeitungsschlange
3.Starten der Erkennung des Dokuments4.…. Warten ….5.… Warten ….6.Ergebnis abspeichern und an den Client zurücksenden
7.nächste Datei verarbeiten
Problem tritt auf, Dienst beendet sichVerarbeitung nicht mehr möglich
Anfrage vom Client
Antwort an den Client
![Page 28: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/28.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II 98
• Anfragen im Web werden nicht von einem dedizierten Server sondern von einem
Gesamtsystem verarbeitet
• Das Gesamtsystem greift dabei auf einen zentralen Ressourcenpool zu
• Rechenkapazität und Arbeitsspeicher
• Datenspeicher und Backupspeicher
• Das Gesamtsystem stellt eigene Dienste, die ebenfalls verwendet werden können
• Load-Balancer zur dynamischen Lastenverteilung auf Hintergrundsysteme
• Datenbankdienste
• DNS, Routing, Überwachung und sonstige Dienste
Clouddienste
![Page 29: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/29.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II 99
• Skalierbare Plattformen mit Diensten
• Microsoft Azure
• Amazon AWS
• Google Cloud Computing
• Heroku
• u.v.m.
Anbieter
![Page 30: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/30.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II 100
• Dienste können automatisch zu Stoßzeiten skalieren und Webdienste sind damit
auch bei hoher Last immer reaktionsschnell
• Herunterfahren von Diensten und bereitgestellten Kapazitäten wenn Dienst nicht
verwendet wird
• georedundante Spiegelung von Servern und Datenbanken für schnelle Zugriffszeiten
Skalierbarkeit und Dynamik
![Page 31: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/31.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II 101
tr.im/modbes
Amazon AWS - Dienstübersicht
![Page 32: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/32.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II 102
tr.im/amzn
SaaS mit Cloud Infrastruktur: DNS
![Page 33: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/33.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II 103
• Konfiguration von DNS
• Weiterleitung an Amazon AWS Infrastruktur
• sog. „Endpunkte“ können basierend auf Standort des Benutzers automatisch gewählt
werden (latenzbasiertes DNS)
• DNS Failover
• Auswertung von Statistiken
• Überwachung und Benachrichtigung durch Amazon-Dienst (Simple Notification
Service)
DNS Verwaltung mit Route 53
![Page 34: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/34.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II 104
• Im Beispiel des SaaS
• DNS steuert den Zugriff auf den - abhängig vom Standort - nächsten
Verarbeitungsserver
• Konfiguriert Szenarien für Failover (Routing in das nächste Rechenzentrum)
• Schaltet ggf. Ressourcen für Kostenreduktion in dem Rechenzentrum ab
DNS Verwaltung mit Route 53
![Page 35: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/35.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II 105
tr.im/amzn
SaaS mit Cloud Infrastruktur: Load-Balancer
![Page 36: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/36.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II 106
• Anfragen werden nicht an einen bestimmten Server gestellt sondern es findet ein
Auswahlverfahren statt:
• Enthält die „Resourcengruppe Webserver“ mindestens einen Server?
• Falls nicht, wird ein Server von einer „Webserver-Vorlage“ gestartet und in die
Resourcengruppe aufgenommen
• Welcher Server hat noch Kapazität frei?
• Weiterleitung der Anfrage an diesen Server
• Falls kein Server eine Kapazität von X zur Verfügung stellen kann
• Weiteren Server von einer „Webserver-Vorlage“ starten und in die
Resourcengruppe aufnehmen
Lastenverteilung mit Elastic Load Balancer
![Page 37: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/37.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II 107
• Der Load-Balancer kann die bereitgestellte Leistung (mögliche „Anfragen/Sekunde“)
selbstständig skalieren
• Das „Auto-Scaling“ von Servergruppen stellt eine schnelle Beantwortung von
Anfragen bereit
• Auto-Scaling kann auch Server herunterfahren und löschen, falls diese nicht
ausreichend ausgelastet werden
• Diese Grenzen können vom Administrator definiert werden
Lastenverteilung mit Elastic Load Balancer
![Page 38: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/38.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II 108
• Im Beispiel des SaaS
• Der Load-Balancer stellt sicher das Web-Server die Anfragen von einem Client
beantwortet werden können
• Teilt die Anfragelast zwischen vorhanden Webservern auf
Elastic Load Balancer
![Page 39: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/39.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II 109
tr.im/amzn
SaaS mit Cloud Infrastruktur: Web-Server
![Page 40: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/40.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II 110
• Der Webserver kann Informationen von anderen Servern oder Diensten abrufen,
aufbereiten und eine gewünschte Information zurückgeben
• Statistikdaten aus einer Datenbank
• Grafiken von der Festplatte
• Layout und Design
• Ausführung von dynamischen Quellcode (bspw. PHP)
• Kombination der Ergebnisse wird als Webseite zurückgegeben
Beantwortung von Anfragen: Webserver
![Page 41: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/41.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II 111
• Im Beispiel des SaaS
• Wickelt die Authentifizierung des Anfragenden ab
• Legt einen neuen Arbeitsauftrag an
• Speichert Informationen zu dem Vorgang in der Datenbank und Dateisystem ab
• Keine Speicherung auf dem Webserver, da nicht garantiert werden kann, dass
dieser Server die nächste Anfrage übernimmt!
Webserver
![Page 42: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/42.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II 112
tr.im/amzn
SaaS mit Cloud Infrastruktur: Application-Server
![Page 43: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/43.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II 113
• Der Webserver kommuniziert mit der hinterliegenden Infrastruktur
• Datenbankserver (Daten und Cache-Datenbanken)
• Anwendungsserver
• Cache
• Datenspeicher
Abarbeitung der Anfrage
![Page 44: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/44.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II 114
• Im Beispiel des SaaS
• Vorgeschalteter Load-Balancer sorgt für genügend Kapazität
• Datenbank (Amazon RDS-Dienst) speichert Arbeitsauftrag
• PDF-Datei für die Verarbeitung wird in Amazon S3 „Bucket“ gespeichert
(Festplattenspeicher)
• Für den Verarbeitungsprozess der Datei wird ein Prozess auf einem separaten
Server gestartet
• Sollten weitere Ressourcen notwendig sein, werden weitere Server bereitgestellt
Anwendungsserver
![Page 45: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/45.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II 115
tr.im/amzn
SaaS mit Cloud Infrastruktur: S3 Speicher
![Page 46: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/46.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II 116
• Der S3-Bucket ist ein Datenspeicher für Dateien bis zu einer Dateigröße von 5 TB
• Alle Amazon-Resourcen können auf einen S3-Bucket und dessen Inhalt zugreifen
• Es ist der zentrale Speicherort für Logs, Anwendungsdateien, Konfigurationsdateien
• Die Daten in einem Bucket müssen manuell gelöscht werden (Server haben einen temporären Speicher)
Speicherung der Daten im S3-Bucket
![Page 47: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/47.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II 117
• Im Beispiel des SaaS
• Beinhalten Log-Dateien, Konfigurationsdateien und die „Eingabedatei“
• Server holen sich die Ressourcen und legen das Ergebnis im Bucket ab
S3-Speicher
![Page 48: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/48.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II 118
tr.im/amzn
SaaS mit Cloud Infrastruktur: Webserver
![Page 49: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/49.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II 119
• Amazon AWS bietet NoSQL-Datenbanken und relationale Datenbanksysteme an
• Die Lese- und Schreibgeschwindigkeit kann für jede Tabelle granular definiert
werden
• Datenbanken können per Knopfdruck zwischen verschiedenen Amazon
Rechenzentren synchronisiert werden
Aktualisierung der Informationen in der Datenbank
![Page 50: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/50.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II 120
• Im Beispiel des SaaS
• Aktualisieren des Kundenprofils innerhalb der Datenbank
• Speicherung der Metriken
• Wie lange wurde die Datei verarbeitet?
• Aktualisierung des Kundenkontos (eCommerce)
Datenbanken
![Page 51: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/51.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II 121
• Im Beispiel des SaaS
• Datei wird nach der Verarbeitung in einem gesonderten S3-Bucket abgelegt und
kann von dem Client heruntergeladen werden
Bereitstellung der Datei
![Page 52: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/52.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II 122
• CloudFront
• Content Distribution Network
• statische Websitedaten (Grafiken, CSS/Javascriptdateien) einem Client besonders
schnell zum Abruf anbieten
• Spezielle Caching-Optionen
• Im SaaS-Beispiel: Bilder, CSS und Javascriptdateien der Website speichern
Zusätzliche AWS-Dienste
![Page 53: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/53.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II 123
• Elastic Beanstalk
• AWS Infrastruktur basierend für ein Quellcode-Repository bereitstellen
• Live-Umgebung und Staging-Umgebung für Tests
• Migration von Staging-Umgebung mit einem Klick in Produktivumgebung
Zusätzliche AWS-Dienste
![Page 54: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/54.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II 124
• Glacier
• preisweiter Langzeit Archivspeicher
• Kosten für Restore: Je nach Zeitraum der Wiederherstellung
• wenige Stunden bis hin zu mehreren Tagen Wartezeit
Zusätzliche AWS-Dienste
![Page 55: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/55.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II 125
tr.im/amzn
Amazon AWS Datenzentren
![Page 56: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/56.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II 126
• Hohe Ausfallsicherheit
• Keine Vorhaltung von redundanter Hardware
• Keine Vorhaltung von georedundanter Hardware
• Produkt kann „klein beginnen“ und skaliert mit der Anwenderzahl mit
• Umsetzung von „Big-Data“ Projekten
Vorteile
![Page 57: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/57.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II 127
• komplexes Abrechnungsmodell (Einheiten, Stunden, Datentransfer, Grundgebühren u.v.m.)
• Projekt muss für Cloud-Dienste optimiert werden
• horizontale Skalierbarkeit der Aufgabe (Aufgabe muss in Teilprobleme aufgeteilt
werden können)
• Wechsel zu einer anderen Plattform mit sehr hohem Aufwand verbunden
• Nutzung von anbieterspezifischen Diensten(bspw. Amazon eigene Datenbank „DynamoDB“)
• Migration und Tests
Nachteile
![Page 58: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/58.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II 128
tr.im/netflix
Skalierung der Dienste am Beispiel Netflix
![Page 59: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/59.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II 129
• setzt auf die Amazon AWS Infrastruktur für die Datendienste
• führt dauerhaft in der Produktivumgebung Tests durch
• eigener Bot „Chaos-Monkey“ zerstört rund um die Uhr Produktivserver
• pro Jahr um die 65.000 Serverinstanzen während des normalen Streamingbetriebs
zerstört und der Failoverbetrieb getestet
• Andere Monkeys testen
• Latenzen
• Sicherheit
• Aufräumarbeiten (Clean-Ups)
• vieles mehr
Netflix
![Page 60: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/60.jpg)
Ergebnisse zwischenspeichernCaching mit Redis
![Page 61: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/61.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II 131
• Ein Cache speichert Informationen für einen schnelleren (wiederholten) Zugriff
• Diese Informationen können vorab dynamisch generiert worden sein
• Aufbereitete Informationen aus einer Datenbank
• Ausgabe eines Interpreters einer dynamischen Skriptsprache (bspw. PHP)
• Teilinhalte einer Website die sich nur gelegentlich ändern (bspw. Infoseite)
• Im Webbereich sind Caches üblicherweise
• dateibasiert (Ablage der Datei auf der Festplatte)
• datenbankbasiert (NoSQL Datenbank)
• „In Memory“ gecached
• oder ein hybrid: „In-Memory Datenbank“
Cache
![Page 62: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/62.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II 132
• Ist eine open source In-Memory Datenbank
• Basiert auf einem „Key-Value-Store“, wie bspw. Hashtabellen (nicht relational)
• bietet sich für einfache Datenstrukturen an
• Ein beliebiger Wert wird unter Angabe eines Schlüssels eingetragen
• Dieser Wert kann unter Angabe des Schlüssels wieder abgerufen werden
• Sehr performant
• bis zu 80.000 Lesevorgänge pro Sekunde
• bis zu 100.000 Schreibvorgänge pro Sekunde auf herkömmlicher Hardware
Redis
![Page 63: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/63.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II 133
• Nginx kann als Reverse Proxy betrieben werden und speichert so Webinhalte
zwischen, bzw. ruft diese von internen Systemen ab
• Auch Datenbankabfragen können mit Redis zwischengespeichert werden, bspw.
• Komplexe Auswertungen
• Abfragen die eine hohe Auslastung des Servers bezwecken
• Abfragen von Werten, die sich nicht verändern (aggregierte Umsatzzahlen der
Vorwoche)
Wo kann gecached werden?
![Page 64: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/64.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II 134
• Die Dauer der Gültigkeit muss durch den Entwickler festgelegt werden
• Definierte Zeitspanne
• Neustart des Systems (ggf. Verlust des Caches)
• Löschen des Caches nach Aktualisierung der Daten durch externen Prozess
• Manuelles Löschen des Caches
Cache Gültigkeit
![Page 65: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/65.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II
Server
Cachen mit Redis - keine Daten im Cache
135
nginx WebserverClient
Node Prozess
SQL-DatenbankRedis Cache
1) GET /index
2) /i
ndex
gec
ache
d?
3) Nicht gefunden
4) Seite generieren
5) D
aten
abr
ufen
6) Ergebnis erhalten
7) HTML zurückgeben8)
/ind
ex c
ache
n9) Antwort
![Page 66: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/66.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II
Server
Cachen mit Redis - Daten im Cache
136
nginx WebserverClient
Node Prozess
SQL-DatenbankRedis Cache
1) GET /index
2) /i
ndex
gec
ache
d? 3) Gefunden
4) Antwort
![Page 67: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/67.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II 137
• Anfragen an den Webserver werden schneller beantwortet
• Jede zwischengespeicherte Information muss nicht generiert werden, was die
Auslastung des Servers vermindert
• pro Webserver können mehr Anfragen beantwortet werden
• Bei rechenintensiven Datenbankabfragen
• weniger Last auf dem Datenbankserver
• schnellere Antwortzeiten bei anderen parallelen Abfragen
Vorteile des Caching
![Page 68: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/68.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II 138
• Die Gültigkeit des Caches muss gewartet werden
• Informationen die nicht mehr Up2Date sind, müssen entfernt oder aktualisiert
werden
• Kein Cachen bei der Verwendung von Cookies möglich
• Nicht alle Bereiche einer Webseite sollten gecached werden
• Echtzeitstatistiken
• Interne Bereiche einer Webseite
Nachteile des Caching
![Page 69: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/69.jpg)
Aktuelle Sprachen und deren VerteilungÜbersicht der Websprachen
![Page 70: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/70.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II 140
tr.im/githut
Übersicht über aktuelle GitHub Repositories
![Page 71: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/71.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II 141
Aktuelle Verteilung
Sprache
0
4
8
12
16
JavaScript Java Python PHP Ruby ASP.NET
![Page 72: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/72.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II
! /dpetrasch/DHBW
JavaScript
142
// Kommentartext
function eineFunktion() { var autoName = "BMW"; }
• Client oder serverbasiert (bspw. jQuery / Node.JS)
• Plattformunabhängig
• Windows, Mac, div. Linux-Distributionen, Embedded & Internet of Things
![Page 73: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/73.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II
! /dpetrasch/DHBW
Java
143
public void startDocument() throws SAXException { nl(); nl(); emit("START DOCUMENT"); nl(); emit("<?xml version='1.0' encoding='UTF-8'?>"); nl(); }
• Java Web-Applications (J2EE)
• Plattformunabhängig
• Windows, Mac, div. Linux-Distributionen
![Page 74: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/74.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II
! /dpetrasch/DHBW
Python
144
# Python 3: Fibonacci series up to n>>> def fib(n):>>> a, b = 0, 1>>> while a < n:>>> print(a, end=' ')>>> a, b = b, a+b>>> print()>>> fib(1000)
• Plattformunabhängig
• Windows, Mac, div. Linux-Distributionen
![Page 75: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/75.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II
! /dpetrasch/DHBW
PHP
145
public function execute($handlers, $path, $method, $data='', $headers=array()) { $config = $this->apiContext->getConfig(); $httpConfig = new PPHttpConfig(null, $method); $httpConfig->setHeaders($headers + array( 'Content-Type' => 'application/json' ) ); return $response; }
• In Version 5 auch objektorientiert (v4 nur prozedural)
• Plattformunabhängig
• Windows, Mac, div. Linux-Distributionen
![Page 76: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/76.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II
! /dpetrasch/DHBW
Ruby
146
def welcome(name) puts "howdy #{name}" # inside double quotes, #{ } will evaluate the variable end welcome("nana") # traditional parens
• Modular mit „Gems“
• Bekannte MVC-Bibliothek ist „Ruby on Rails“
• Online Beispiel auf tryruby.org
• Plattformunabhängig
• Windows, Mac, div. Linux-Distributionen
![Page 77: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/77.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II
! /dpetrasch/DHBW
ASP.NET
147
public class IntroParams { [Params(100, 200)] public int A { get; set; }
[Params(10, 20)] public int B { get; set; }
public void Benchmark() { Thread.Sleep(A + B + 5); } }
• Modular mit „NuGet Packages“
• Plattformabhängig
• Windows, andere Plattformen mit Mono
![Page 78: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/78.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II 148
tr.im/netcraft
Webserver Marktanteile
![Page 79: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/79.jpg)
REST und SOAPWeb Services
![Page 80: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/80.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II
Anwendungsgebiet: Web Services
150
Web Service
iPhone App Android App PC App
Businesslogik Datenmodelle Datenbanken
Mac App Webseite Drittanbieter
![Page 81: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/81.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II 151
• eine im Internet veröffentlichte Software die über Standardschnittstellen
angesprochen werden kann
• Interaktion zwischen Client und Server geschieht durch den Austausch von XML-
basierten Nachrichten über Internetprotokolle
• die Technologien hinter Web Services sind plattformunabhängig
• mit Web Services können eigene Dienste bereitgestellt werden, die Informationen
für Webseiten, Apps und Anwendungen gleichzeitig bereitstellen
Was sind Web Services?
![Page 82: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/82.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II 152
• SOAP
• steht für Simple Object Access Protocol
• ist ein Netzwerkprotokoll mit dessen Hilfe Daten zwischen Systemen ausgetauscht
werden können oder entfernte Prozeduren aufgerufen werden können
• ist ein industrieller Standard des World Wide Web Consortiums (W3C)
• Basiert auf XML
• Plattformunabhängig
• Programmiersprachenunabhängig
• Es existiert kein bestimmtes Transportprotokoll, üblicherweise wird HTTP benutzt
SOAP: Allgemeines
![Page 83: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/83.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II 153
• RPC (Remote Procedure Call)
• Es wird eine Methode des Servers per Web Service aufgerufen
• Funktionsname und Namen werden in der SOAP-Nachricht an den Server
übertragen
• Dokumentbasiert
• Es werden strukturierte Informationen versendet
• Der Webserver verarbeitet diese Informationen und sendet das Ergebnis sofort
oder zeitlich versetzt zum Server zurück
SOAP: Anwendungsoptionen
![Page 84: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/84.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II
Aufbau einer SOAP-Nachricht
154
SOAP Umschlag/Envelope
SOAP Header
SOAP Body
• Optionales Element• Beinhaltet Anwendungsspezifische Informationen
• Enthält Informationen für den eigentlichen Empfänger• Kann auch Informationen für entfernten Prozeduraufruf
enthalten• Informationen sind durch den Empfänger zu interpretieren
und zu verarbeiten
• Umschlag ist der Container zur Einbettung von Daten
Transport Header
• Transport Header• üblicherweise HTTP
![Page 85: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/85.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II
! /dpetrasch/DHBW
Struktur von SOAP-Nachrichten
155
POST /soapnachrichtenendpunkt HTTP/1.1Content-Type: application/soap
<?xml version="1.0"?><s:Envelope xmlns:s=„http://www.w3.org/2003/05/soap-envelope">
<s:Header>. . .
</s:Header>
<s:Body>. . .
</s:Body>
</s:Envelope>
Transport Header
SOAP Umschlag
SOAP Header
SOAP Body
![Page 86: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/86.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II
! /dpetrasch/DHBW
SOAP-Envelope
156
<?xml version="1.0"?><s:Envelope xmlns:s=„http://www.w3.org/2003/05/soap-envelope“>
<!—- optionaler SOAP-Header —-> <!—- SOAP-Body —->
</s:Envelope>
• Grundgerüst einer SOAP-Nachricht
• Ist ein Behälter vergleichbar mit einem Briefumschlag
• In dem SOAP-Envelope ist der SOAP-Header und der SOAP-Body enthalten
![Page 87: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/87.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II
! /dpetrasch/DHBW
SOAP-Header
157
<x:ersterBlock xmlns:x=„http://example.com“>
<!—- Variablen —->
</x:ersterBlock>
• Optionaler Bestandteil
• falls vorhanden, muss der SOAP-Header vor dem Body stehen
• inhaltsunabhängige Daten und anwendungsspezifische Angaben
![Page 88: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/88.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II 158
• Beinhaltet die eigentliche Nachricht
• Keine festgelegte Struktur
• Muss im XML-Format geschrieben werden
• Bei RPC enthält er Informationen zum Funktionsaufruf
• Methodenname
• Parameterliste
• Rückgabewert
• Optional: Attachment
• Keine Beschränkung für das Dateiformat
• Zum Anhängen von Dokumenten
SOAP-Body
![Page 89: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/89.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II 159
• Wird verwendet um Informationen über aufgetretene Fehler zu übermitteln
• SOAP-Fault ist ein Unterelement des Bodys
• Besteht aus den Unterelementen
• Code: Fehlerklassifizierung
• Reason: dient der menschenlesbaren Fehlerbeschreibung
• Optional: Beschreibung wo genau der Fehler aufgetreten ist: Node, Role und Detail
SOAP-Fault
![Page 90: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/90.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II
! /dpetrasch/DHBW
RPC-Nachricht
160
<?xml version='1.0' encoding="UTF-8?><env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"> <env:Header> <m:reservation xmlns:m="http://travelcompany.org/reservation" env:role="http://www.w3.org/2003/05/soap-envelope/role/next" env:mustUnderstand="true">
<m:reference>uuid:093a2da1-q345-739r-ba5d</m:reference> <m:date>2004-05-10</m:date>
</m:reservation> </env:Header> <env:Body> <p:itinerary xmlns:p="http://travelcompany.org/reservation/travel"> <p:setReservation> <p:departing>Duesseldorf</p:departing> <p:arriving>Muenchen</p:arriving> <p:departureDate>2004-05-29</p:departureDate> <p:departureTime>mid-morning</p:departureTime> <p:class>business</p:class> </p:setReservation>
</p:itinerary> </env:Body> </env:Envelope>
Funktionsaufruf der Funktion „setReservation“Parameter:Departing, Arriving, departureDate, departureTime,class
Endpunkt für den Webservice
![Page 91: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/91.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II
! /dpetrasch/DHBW
Dokumentbasierte Nachricht
161
<?xml version='1.0' encoding="UTF-8?><env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"> <env:Header> <m:reservation xmlns:m="http://travelcompany.org/reservation" env:role="http://www.w3.org/2003/05/soap-envelope/role/next" env:mustUnderstand="true">
<m:reference>uuid:093a2da1-q345-739r-ba5d</m:reference> <m:date>2004-05-10</m:date>
</m:reservation> </env:Header> <env:Body> <p:itinerary xmlns:p="http://travelcompany.org/reservation/travel">
<departing>Duesseldorf</departing> <arriving>Muenchen</arriving> <departureDate>2004-05-29</departureDate> <departureTime>mid-morning</departureTime> <class>business</class>
</p:itinerary> </env:Body> </env:Envelope>
Es werden die Variablendeparting, arriving, departureDate, departureTime und class übergeben
Endpunkt für den Webservice
Der Empfänger muss selbstständig die Informationen extrahieren!
![Page 92: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/92.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II 162
• Es können einfache und zusammengesetzte Datentypen verwendet werden
• Einfache
• Byte, Integer, Long (Zahlen)
• Float, Double (Gleitkommazahlen)
• Char und String (Buchstabe und Text)
• Boolean (Ja/Nein)
• Zusammengesetzte Datentypen
• Array
• Strukturen (Klassen)
SOAP: Unterstütze Datentypen
![Page 93: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/93.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II 163
• Verschiedene Dienste stellen per SOAP Daten für den Abruf bereit
• Wetterdienste
• Aktieninformationen
• Abruf von Bankleitzahlen
• Nutzen einer SOAP-Schnittstelle am Beispiel eines Wetterdienstes
• Graphische Tools oder Webseiten vereinfachen Tests des Dienstes
Verwendung von Onlinediensten: Wetterdienst
![Page 94: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/94.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II 164
tr.im/boomerang
Boomerang Test-Client
Chrome App zum Testen von Web Services
![Page 95: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/95.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II 165
tr.im/amzn
Boomerang Test-Client
Adresse des SOAP-Webdienstes
Eigene Bezeichnung
![Page 96: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/96.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II 166
tr.im/amzn
Boomerang Test-Client: Request
Benötigte Parameter
SOAP-Nachricht
Verfügbare Funktionen auf Server
![Page 97: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/97.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II 167
tr.im/amzn
Boomerang Test-Client: Response
Ergebnis der Abfrage im XML-Format
![Page 98: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/98.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II 168
• REST steht für Representational State Transfer
• Kein Standard wie SOAP
• Plattform- und programmiersprachenunabhängig
• Auch geeignet für die Erstellung von Web Services
• Bei REST-Anwendungen ist jede Ressource, z.B. ein Artikel in einem Onlineshop,
über eine URI adressiert und kann so angesprochen werden
• Transportprotokoll ist HTTP
• Inhalte werden untereinander verlinkt, um dem Client die Möglichkeit zu geben, von
einem Zustand in den nächsten zu wechseln
REST: Allgemein
![Page 99: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/99.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II 169
• Ein REST-Netzwerk besteht auch aus einem Client und einem Server
• Ein „REST-System“ besteht aus Ressourcen die per URI adressiert werden
• Jede Anfrage muss alle notwendigen Informationen für die Durchführung beinhalten
(HTTP ist zustandslos)
• Es werden die bekannten HTTP-Methoden verwendet (bspw. GET/POST/PUT/DELETE)
• Eine HTTP-Anfrage hat immer den folgenden Aufbau Methode ID Version
REST: Merkmale
![Page 100: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/100.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II 170
• Eine Schnittstelle für einen Onlineshop soll entwickelt werden
• Es soll möglich sein, eine Liste der vorhanden Artikel abzurufen
• Detaillierte Informationen zu einem Artikel abzurufen
• Eine Bestellung zu senden
REST: Beispiel
![Page 101: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/101.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II
! /dpetrasch/DHBW
REST: Artikelliste anfordern
171
GET /artikel HTTP/1.0
<?xml version="1.0"?><p:Artikeliste xmlns:p="http://www.domain.com" xmlns:xlink="http://www.w3.org/1999/xlink"> <Artikel id="001" xlink:href="http://www.domain.com/artikel/001"/> <Artikel id="002" xlink:href="http://www.domain.com/artikel/002"/> <Artikel id="003" xlink:href="http://www.domain.com/artikel/003"/> <Artikel id="004" xlink:href="http://www.domain.com/artikel/004"/></p:Artikeliste>
• Der REST-Service definiert eine Adresse, unter der die Liste (Ressource)
angefordert werden kann
• Der Client kann diese Liste per HTTP-GET abrufen
![Page 102: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/102.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II
! /dpetrasch/DHBW
REST: Artikel anfordern
172
GET /artikel/001 HTTP/1.0
<?xml version="1.0"?><p:Artikel xmlns:p="http://www.domain.com" xmlns:xlink="http://www.w3.org/1999/xlink"> <Artikelnummer>001</Artikelnummer> <Name>Testartikel</Name> <Stueckpreis>12.43</Stueckpreis> <Menge>115</Menge> </p:Artikel>
• Der Web Service ordnet jedem Artikel eine eindeutige URL zu, dem Artikel
001 bspw: http://www.domain.com/artikel/001
• Details zu einem Artikel können über ein GET auf diese Url abgerufen werden
![Page 103: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/103.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II
REST: Unterscheidung logische und physische Ressourcen
173
REST
Datenbank
GET /artikel/001physisch?
SELECT … FROM A WHERE Nr = 1
XML zu Artikel 001
GET /artikel
Artikelliste
logisch?
DatenbankSELECT … FROM A
![Page 104: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/104.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II
! /dpetrasch/DHBW
REST: Komplexe Url
174
GET /artikel/?menge=10 HTTP/1.0
<?xml version="1.0"?><p:Artikel xmlns:p="http://www.domain.com" xmlns:xlink="http://www.w3.org/1999/xlink"> <Artikelnummer>001</Artikelnummer> <Name>Testartikel</Name> <Stueckpreis>12.43</Stueckpreis> <Menge>10</Menge> </p:Artikel>
• Komplexe Urls können logische Ressourcen filtern
• Anzahl der zurückzugebenden Elemente begrenzen
• Filtern nach einem bestimmten Merkmal (bspw. Kategorie oder Preis)
• In dem Beispiel werden alle Artikel mit einer Menge von 10 abgerufen
![Page 105: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/105.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II
Funktionsweise: SOAP und REST
175
Objekte
getArtikel()
getArtikelliste()
bestellen()
Objekte
getArtikel()
getArtikelliste()
bestellen()
Web Server
/soap/router
Web Server
/artikel/*
/artikelliste/*
/bestellung/*
Client
SOAP Message
SOAP Message
SOAP Message
Client
HTTP-Anfrage
HTTP-Anfrage
HTTP-Anfrage
POST
GET
SOAP
REST
![Page 106: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/106.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II 176
• Web Services passieren Firewalls problemlos, da HTTP verwendet wird
• Inhalt der SOAP-Nachricht ist innerhalb des Bodys kodiert (als XML) und
Administratoren können nicht sehen, was aufgerufen wird
• Bei REST ist die gesamte Nachricht in der URL kodiert. Firewalls können Elemente
sperren
• HTTP-Funktionen PUT und DELETE können vom Server gesperrt sein
• Web Services sollten immer über HTTP kommunizieren, da die Daten
unverschlüsselt über das Netz übertragen werden
Web Services: Sicherheit
![Page 107: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/107.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II 177
• SOAP-Nachrichten können nicht geloggt werden, da sie über POST verschickt
werden
• REST-Anfragen können aufgeteilt werden, dadurch Erhöhung der Performance
• Bei REST sind alle Anfragen zustandslos (stateless) (positive Auswirkungen auf Skalierbarkeit)
Web Services: Skalierbarkeit und Effizienz
![Page 108: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/108.jpg)
Exkurs: Basiswissen JavascriptEinführung in Node.js
![Page 109: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/109.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II
! /dpetrasch/DHBW
Variablen
179
// Variablen var eineVariable = 10; var einText = "Beispieltext" var einBoolean = true; var wertIstUndefined;
• Variablen speichern Ziffern, Buchstaben, Zahlen, Gleitkommazahlen oder
komplexe Dateistrukturen
• Variablen in Javascript sind nicht stark typisiert, eine Unterscheidung von
Integer, String, oder ähnlich ist bei der Deklaration nicht notwendig
• Variablen sind ohne Zuweisung (Initialisierung) eines Wertes ‚undefined‘
![Page 110: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/110.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II
! /dpetrasch/DHBW
Scope-Bereich
180
// Code in diesem Bereich kann NICHT // auf "autoName" zugreifen function eineFunktion() { var autoName = "BMW"; // Code in diesem Bereich kann auf die // Variable "autoName" zugreifen }
• Variablen sind nur in bestimmten Bereichen gültig
• Am Ende eines Bereichs (Scopes) wird der Speicher bereinigt
• Es können auch globale Variablen definiert werden, die überall gültig sind
![Page 111: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/111.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II
! /dpetrasch/DHBW
Globale Variablen
181
// Code in diesem Bereich kann JETZT AUCH // auf "autoName" zugreifen
function eineFunktion() { autoName = „BMW“; // Kein var! // Code in diesem Bereich kann auf die // Variable "autoName" zugreifen }
• Globale Variablen werden ohne „var“ deklariert
• So implementierte Variablen werden dem Namespace „window“ hinzugefügt
![Page 112: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/112.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II
! /dpetrasch/DHBW
Rechenoperationen
182
var ergebnis = 10 + 4 // ergebnis = 14 var ergebnis2 = 15 * 2 // ergebnis2 = 30
var zahl = 1; var eins = ++zahl; // Pre-Inkrement : eins = 2, zahl = 2 var zwei = zahl++; // Post-Inkrement: zwei = 2; zahl = 3
• Zur Erhöhung oder Verminderung um 1 kann eine verkürzte Schreibweise
genutzt werden
![Page 113: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/113.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II
! /dpetrasch/DHBW
Vergleichsoperatoren
183
// Vergleichsoperationen var wahr = 1; var falsch = 0;
console.log( "Ist Wahr gleich Falsch? : " + (wahr == falsch) ); // Falsch console.log( "Ist Wahr ungleich wahr? : " + (wahr != wahr) ); // Falsch console.log( "Ist Wahr groesser als falsch? : " + (wahr > falsch) ); // Richtig console.log( "Ist Wahr kleiner als falsch? : " + (wahr < falsch) ); // Falsch
• Können zur Überprüfung eines Werts verwendet werden
• Bspw. nach dem Aufruf einer Funktion kann so der Rückgabewert der
Funktion überprüft werden
![Page 114: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/114.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II
! /dpetrasch/DHBW
Funktionen
184
// Funktionen function multiplizieren(num1,num2) { // num1 und num2 sind Parameter var result = num1 * num2; // Zugriff auf Parameter return result; // Ergebniswert zurueckgeben }
// Ausgabe in Konsole, auch Umbruch der Zeile ist möglich console.log("Ergebnis von 2 * 3 lautet: " + multiplizieren(2,3));
• Dienen zur Lösung von Teilproblemen und strukturieren Quellcode
• Machen Quellcode wartungsfreundlicher
• Können ein Objekt zurückgeben
• Beim Aufruf können Parameter übergeben werden
![Page 115: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/115.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II 185
• Kontrollstrukturen ermöglichen die Verzweigung des ansonsten linearen Programm-/
Skriptablaufs
• Können den Aufruf von einer Funktion mit unterschiedlichen Parametern
vereinfachen
• Können für bestimmte Szenarien kombiniert und verschachtelt werden
Kontrollstrukturen
![Page 116: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/116.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II
! /dpetrasch/DHBW
Kontrollstrukturen
186
// Kontrollstrukturen var WertIstWahr = true, WertIstFalsch = false;
if (WertIstFalsch) { console.log(‚hello!'); // Dieser Quellcode wird nie erreicht }
if (WertIstFalsch) { // Dieser Scope wird nie erreicht } else { if (WertIstWahr) { // Dieser Scope wird erreicht, da der Ausdruck Wahr ist } else { // Dieser Scope wuerde erreicht werden, // wenn WertIstWahr und WertIstFalsch beide "falsch" waeren } }
![Page 117: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/117.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II
! /dpetrasch/DHBW
Kontrollstrukturen
187
var autoMarke = „Porsche";
switch (autoMarke) { // Fall: Wert ist gleich "VW" case 'VW': console.log(ganzerName + " faehrt einen VW"); break; // Fallunterscheidung verlassen case 'Audi': console.log(ganzerName + " faehrt einen Audi"); break; case 'Porsche': console.log(ganzerName + " faehrt einen Porsche"); break; default: // Falls keine passende Fallunterscheidung vorhanden, // kann ein "Catch All"-Fall "default" verwendet werden console.log(ganzerName + " faehrt einen " + autoMarke); break; }
![Page 118: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/118.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II 188
• Kopfgesteuerte Schleifen
• Die Bedingung wird bereits vor dem ersten Durchlauf überprüft. Sollte die
Bedingung falsch sein, so wird die Schleife nicht durchlaufen
• Fußgesteuerte Schleifen
• Die Schleife wird mindestens einmal durchlaufen, da die Bedingung erst am Ende
überprüft wird
• Zählschleife (for-Schleife)
• Die Schleife hat die selben Eigenschaften wie die kopfgesteuerte, hat jedoch die
Besonderheit, einen Laufindex anzupassen
Schleifen
![Page 119: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/119.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II
! /dpetrasch/DHBW
For-Schleife
189
// for-Schleife var index = 0;
// index ist hier die Laufvariable, die vor jedem Durchlauf mit // der Bedingung index <= 10 verlgeicht wird // und nach jeder Ausfuehrung um 1 erhoeht wird
for(var index = 1; index <= 10; index = index + 1) { console.log("Schleifendurchlauf Nr. " + index); }
![Page 120: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/120.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II
! /dpetrasch/DHBW
Schleifen
190
// Fussgesteuerte While-Schleife var i = 0; do { console.log("Schleifendurchlauf Nr. " + i); i++; } while (i < 10);
// Kopfgesteuerte While-Schleife i = 0; while (i < 10) { console.log("Schleifendurchlauf Nr. " + i); i++; }
![Page 121: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/121.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II
! /dpetrasch/DHBW
Undefinied und NULL
191
// Undefined var x;
if (x === undefined) { console.log( "x ist undefiniert"); } else { console.log( "x ist definiert"); }
• Variablen, die nur deklariert und nicht initialisiert werden, haben den Wert „undefined“
• Bei der Zuweisung von Ergebnissen kann eine Variable den NULL-Wert erhalten, wenn
die vorherige Funktion einen Fehler verursacht hat
• Grundsätzlich sollte auf „undefined“ und „null“ geprüft werden, wenn unbekannte
Drittkomponenten verwendet werden
![Page 122: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/122.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II 192
• Javascript-Quellcode, der beim Client ausgeführt wird, wird direkt im Browser
ausgeführt und kann „debuggt“ werden - also angehalten und manipuliert werden
• Bei der Entwicklung und das Debuggen wichtig, um Fehler im Quellcode aufzuspüren
und beheben zu können
• Die Konsole im Browser erlaubt es Entwicklern, „interaktiv“ mit dem Quellcode
Informationen anzuzeigen, auszugeben und zu editieren.
Debuggen von Javascript-Quellcode
![Page 123: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/123.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II 193
Debuggen von Javascript-Quellcode
Website
Quellcode
![Page 124: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/124.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II 194
Debuggen von Javascript-Quellcode
BreakpointWerte
![Page 125: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/125.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II 195
Manipulieren von Javascript-Quellcode
Die Konsole erlaubt die Ausführung von
Quellcode
Manipulation
![Page 126: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/126.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II 196
• Zur weiteren Vereinfachung des JavaScript-Quellcodes wurden Sprachen entwickelt,
die eine kürzere oder einfachere Schreibweise ermöglicht
• Der Quellcode der Sprache wird anschließend mit einem Compiler zu JavaScript
„übersetzt“.
• Die Vereinfachung oder Verkürzung ist oftmals enorm
CoffeeScript und TypeScript
![Page 127: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/127.jpg)
Allgemeines, Aufbau und KomponentenEinführung in Node.js
![Page 128: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/128.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II 198
• Node.js ist eine serverseitige Plattform zum Betrieb von Netzwerkanwendungen
• Basiert auf der Google V8-Javascript-Engine
• Erweiterbar ist Node mit Paketen (Modulen)
• Es existiert ein Paketmanager (NPM)
• Das „Grundpaket“ enthält bereits viele APIs und Funktionen
• Es kann auch C++-Quellcode ausgeführt werden
Allgemeines
![Page 129: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/129.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II 199
tr.im/nodelts
Versionen und Long Term Support
![Page 130: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/130.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II 200
Aufbau von NodeJS
Node.js CoreV8 Profiler LIBUV
Loopback
Passport
Socket IO
DB Connectors
REST Connectors
SOAP Connectors
Request
Encryption Beliebige weitere Pakete
IO
![Page 131: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/131.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II 201
• Für die Entwicklung und Ausführung muss die Node.js Runtime installiert werden
• Diese ist für Windows, Mac, Linux sowie ARM-Geräte verfügbar
Node.js Installation
![Page 132: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/132.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II 202
• Nodepad++
• SublimeText
• JetBrains WebStorm (für Studenten kostenlos)
Entwicklungsumgebungen
![Page 133: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/133.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II 203
• Nach der Installation kann „node“ in der Kommandozeile/Terminal aufgerufen
werden
• Um Skripte zu starten, werden diese als Parameter aufgerufen
Node.js Verwendung
![Page 134: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/134.jpg)
PaketmanagerNode.js
![Page 135: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/135.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II 205
• Ist vergleichbar mit dem Advanced Packing Tool von Linux (apt)
• Kann Pakete installieren, aktualisieren und entfernen
• Stand Februar 2016 sind über 230.000 Pakete vorhanden
Node Package Manager (NPM)
tr.im/npm
![Page 136: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/136.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II 206
• Liegt in dem Root-Verzeichnis jedes Projekts
• Beinhaltet Informationen zu
• Verwendeten Paketen
• dem Projekt
• Abhänigkeiten
• möglichen Startbefehlen
package.json
tr.im/pjson
![Page 137: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/137.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II
! /dpetrasch/DHBW
package.json
207
{ "name": „sample-projet", "description": "A demo app", "version": "1.0.0", "private": false, "author": „Dennis Alexander Petrasch <[email protected]> (http://dpetras.ch)“, "repository": { "type": "git", "url": "https://github.com/dpetrasch/sample.git" }, "engines": { "node": ">=5.x" }, "scripts": { "start": "NODE_ENV=development ./node_modules/.bin/nodemon server.js", }, "dependencies": { "passport": "~0.3.2", "passport-facebook": "~2.0.0", }, "devDependencies": { "ava": "~0.6.0" }}
tr.im/pjson
![Page 138: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/138.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II 208
• Unterscheiden sich in dem Installationsort
• Lokale Pakete
• Werden in einem Subordner „node-modules“ am aktuellen Ort installiert
• Globale Pakete
• Werden in dem Profil des Benutzers im Subordner „node-modules“ installiert
• Unterscheidung anhand des Parameters -g
Lokale und Globale Pakete
![Page 139: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/139.jpg)
Versionierung und Arbeiten im TeamExkurs: Quellcodeverwaltung
![Page 140: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/140.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II 210
• Arbeit im Team
• Versionierung
• Unterschiedliche Stände und Module
• Branch
• Projekte in Teilprobleme aufteilen und nachher zusammen führen
Gründe für zentrale Quellcodeverwaltung
![Page 141: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/141.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II 211
• Subversion
• Git
• Mercurial
• Microsoft Team Foundation Server
Systeme
![Page 142: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/142.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II 212
• GitHub
• Studenten erhalten kleinsten Plan umsonst
• „Crowd Development“
• Unterschiedliche Projekte
• „Forken“ und besser machen
• BitBucket
• Alternative von Atlassen
• Als „Stash/BitBucket Server“ auch als „on Premise“-Variante erhältlich
Onlineplattformen
![Page 143: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/143.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II 213
• Repository
• Ein definierter Ordner, zu dem zu bestimmten Zeitpunkten ein Snapshot erstellt
wird
• Snapshot wird durch Benutzer durch einen sog. „Commit“ erstellt
• Es handelt sich um einen differentiellen Snapshot zur vorherigen Version
• Stage
• Ein Bereich, in dem Änderungen für Dateien vorgemerkt werden
• Ein Sammelplatz für Änderungen die dann in ein „Commit“ überführt werden
Vokabular: Git
![Page 144: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/144.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II 214
• Commit
• Alle Änderungen innerhalb der Stage werden mit einer frei definierbaren
Beschreibung in den Zeitstahl hinzugefügt
• Es wird ein neuer „Snapshot“ erstellt
• Branch
• auch Ast genant
• Es gibt einen „Urast“, den „master“
• Ein Ast kann in einen anderen Ast verzweigen
Vokabular: Git
![Page 145: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/145.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II 215
• Revert
• Es kann zu einem bestimmten Commit in der Zeitlinie gesprungen werden. Die
Änderungen an den Dateien wird dann bis zu dem Zeitpunkt rückgängig gemacht
• Init
• Der Prozess zum Erstellen eines neuen Repositories wird „init“ genannt
• Checkout
• Ein vorhandenes Repository auf dem System duplizieren
• Git-Repositories sind überall vollkommen„gespiegelt“! Es gibt keine Server, nur
gleichberechtigte Repositories!
Vokabular: Git
![Page 146: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/146.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II 216
tr.im/git
Git Workflow: Master und Entwicklung
![Page 147: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/147.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II 217
tr.im/git
Git Workflow: Funktionsbranches
![Page 148: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/148.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II 218
tr.im/git
Git Workflow: Funktionsbranchen mit Release
![Page 149: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/149.jpg)
Prozesse während der Entwicklung optimierenGrunt
![Page 150: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/150.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II 220
• Quellcode überprüfen (lint)
• Unit Tests ausführen
• Ergebnisse / Bedingungen auswerten
• Quellcode verkleinern, bzw. „uglifien“
• Kompilieren
• In Test-Umgebung hochladen (Staging Area)
• Test-Datenbanken laden
• Dateiverzeichnis vorbereiten
Wiederholende Aufgaben während der Entwicklung
![Page 151: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/151.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II 221
• Plattform für Ausführung von Befehlen
• Konfiguration über Konfig-Datei „Gruntfile“
• Aufgeteilt in einzelne Aufgabenbereiche
• Aufruf über Parameter, bspw. „grunt test“
• Führt andere Node.JS Komponenten aus und kann Ergebnisse interpretieren
Hilfsprogramm Grunt
![Page 152: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/152.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II
! /dpetrasch/DHBW
Grunt Konfiguration
222
module.exports = function(grunt) {
grunt.initConfig({ pkg: grunt.file.readJSON('package.json'), uglify: { options: { banner: '/*! <%= pkg.name %> <%= grunt.template.today("dd-mm-yyyy") %> */\n' }, dist: { files: { 'dist/<%= pkg.name %>.min.js': ['<%= concat.dist.dest %>'] } } }, qunit: { files: ['test/**/*.html'] } });
grunt.loadNpmTasks('grunt-contrib-uglify'); grunt.loadNpmTasks('grunt-contrib-qunit');
grunt.registerTask('test', ['qunit']); grunt.registerTask('default', [qunit', ‚uglify']);
};
![Page 153: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/153.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II 223
• Scaffolding
• Grundlegende Einrichtungsschritte sollen automatisiert werden
• MVC-Framework
• Basiscontroller / Views
• Authentifizierung
• Inhaltsbereiche (Registrierungsdialog, Login, Mitgliederbereich, o.ä.)
• Verschiedene Frameworks oder Pakete werden miteinander kombiniert
• „Beliebte Kombinationen“ können durch Dritte weiterverwendet werden
yeoman - Templates für schnellere Webentwicklung
![Page 154: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/154.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II
! /dpetrasch/DHBW
Pakete
224
MEAN Stack
NodeExpressMongoDB AngularJS
NoSQLDatenbank
serverseitigesWebframework
clientseitigesWebframework Basis
![Page 155: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/155.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II 225
• yeoman stellt ein Katalog sowie eine Software zur Konfiguration bereit
• Webkatalog wird von Mitgliedern gepflegt
yeoman - Scaffolding Verzeichnis
![Page 156: Sicheres Generieren auf dem Webserver - Keil## Protokolle - hierzu spaeter mehr ... durch Hyperlink oder Direktaufruf Request / Response im HTTP-Protokoll-Aufbau TCP-Verbindung-HTTP-Request,](https://reader035.vdocuments.site/reader035/viewer/2022071100/5fd8fd60369fc94aac4a2f7d/html5/thumbnails/156.jpg)
Duale Hochschule Baden-WürttembergWeb Engineering II 226
tr.im/resizer
Wie responsible ist meine Seite? Google Design: Resizer