Netzwerktechnik: Client-Server-Systeme / Webserver / XAMPP
Auf einen Blick
Das Client-Server-Modell beschreibt eine Möglichkeit, Aufgaben und „Dienstleistungen“ innerhalb eines Netzwerkes zu verteilen. Die Aufgaben werden von Programmen erledigt, die in Clients und Server unterteilt werden. Der Client kann auf Wunsch einen Dienst vom Server anfordern. Der Server, der sich auf demselben oder einem anderen Rechner im Netzwerk befindet, beantwortet die Anforderung (das heißt, er stellt etwas bereit); üblicherweise kann ein Server gleichzeitig für mehrere Clients arbeiten.
Beispiel für eine Kommunikation über http:
Anfrage:
GET infotext.html HTTP/1.1
host: www.example.net
Antwort:
HTTP/1.1 200 OK
Server: Apache/1.3.29 (Unix) PHP/4.3.4
Content-Length: (Größe von infotext.html in Byte)
Content-Language: de (nach RFC 3282 sowie RFC 1766)
Content-Type: text/html
html-Code von infotext.html
Statische Webseiten
Statische Webseiten
Statische Webseiten basieren auf einem HTML Dokument, das ausschließlich HTML Code enthält und auf dem Webserver gespeichert ist. Dieser Code wird auf Anfrage an den Browser (Client) übertragen, durch ihn interpretiert und angezeigt.
Beispiel:
<html>
<head>
<title>Textabsätze definieren</title>
</head>
<body>
<h1> Textabsätze und Überschriften definieren</h1>
<p>Hier beginnt ein Absatz, und hier ist er zu Ende.</p>
<p>Hier beginnt ein neuer Absatz, und hier ist er zu Ende.</p>
<h1>Dies ist eine Überschrift 1. Ordnung</h1>
<h2>Dies ist eine Überschrift 2. Ordnung</h2>
<b>Dieser Text wird fett dargestellt. </b>
Dieser Text wird normal dargestellt.
</body>
</html>
Dynamische Webseiten
Dynamische Webseiten
Dynamische Webseiten basieren auf einem HTML Dokument, das HTML und Scriptcode (meist php) enthält und auf dem Webserver gespeichert ist. Dieser Code wird auf Anfrage durch Inhalte, die in einer Datenbank abgelegt sind, vervollständigt und erst dann an den Browser (Client) übertragen, durch ihn interpretiert und angezeigt.
Beispiel 1:
<html>
<head>
<title>PHP-Test</title>
</head>
<body>
<?php echo ‚<p>Hallo Welt</p>‘; ?>
</body>
</html>
Beispiel 2:
if($_REQUEST[‚action‘]==“getpdf“)
{
mysql_connect(„servername“,“login“,“PW“);
mysql_select_db(„Datenbankname“);
… ?>
<html>
<head>
<title>apachefriends.org cd collection</title>
</head>
<body>
<h1><?=$TEXT[‚cds-head‘]?></h1>
…
<h2><?=$TEXT[‚cds-head1‘]?></h2>
<table>
<tr>
<td><img src=img/blank.gif></td>
<td><b><?=$TEXT[‚cds-attrib1‘]?></b></td>
<td><b><?=$TEXT[‚cds-attrib2‘]?></b></td>
<td><b><?=$TEXT[‚cds-attrib3‘]?></b></td>
<td ><b><?=$TEXT[‚cds-attrib4‘]?></b></td>
</tr>
…
</table>
</body>
</html>
Server als Entwicklungskomponente
Zur Entwicklung eines Webangebotes, das die Daten zentral in einer Datenbank hält, muss ein Server zur Verfügung stehen, der mit einer Datenbank kommunizieren kann.Sinnvollerweise wird zunächst ein Testsystem auf dem lokalen Rechner installiert und erst bei vollständiger Funktionalität des Webangebotes dieses auf ein Produktivsystem übertragen.
Ein solches Testsystem besteht aus mindestens drei Komponenten:
- Server-Software
- Datenbank
- Skript-Sprache zur Kommunikation
Diese Komponenten können einzeln installiert und konfiguriert werden oder als Komplettlösung verwendet werden. Aufgrund der Einfachheit und der sehr guten Funktionalität wird hier die Installation von XAMPP empfohlen. Dies ist ein Programmpaket (Distribution) bestehend aus der Server-Software Apache, der Datenbanksoftware MySQL und der Script-Sprachen php und Perl. Alle Komponenten sind funktionsfähig aufeinander abgestimmt und können sofort benutzt werden. Die Distribution steht für verschiedene Betriebssysteme zur Verfügung und ist so vorkonfiguriert, dass möglichst alle Anwendungsbereiche der Webserver-Software Apache zur Verfügung stehen.
In öffentlichen Räumen müssen portable Version verwendet werden. Sie finden diese hier.
Installation
Anschließend bitte die 7z -Datei mit dem Programm 7zip entpacken, indem Sie mit der rechten Maustaste das Kontextmenü aufrufen und 7-Zip / Extract Here auswählen. Nach dem erfolgreichen Enpacken finden Sie einen Ordner namens XAMPP vor.
Windows Einstellung: Erweiterungen bei bekannten Dateitypen ausblenden
Sollten Sie im Dateiverzeichnis keine Endungen an den Dateinamen vorfinden, wählen Sie bitte unter Organisieren die Option Ordner- und Suchoptionen und dann den Reiter Ansicht. Dort gibt es den Eintrag Erweiterungen bei bekannten Dateitypen ausblenden, der nicht aktiviert werden darf (siehe Themenseite zu Windows)
Nun muss die Datei setup_xampp.bat einmalig doppelt angeklickt und damit ausgeführt werden.
Nach erfolgreicher Installation muss der Server und die Datenbank über Konsolenbefehle oder über das Control Center/Control Panel (xampp-control.exe) gestartet werden, anschließend steht ein lokaler Server zur Verfügung.
localhost
Der lokale Webserver ist ansprechbar, indem ein Browser als Client diesen mit der URL http://localhost’ bzw. der IP Adresse 127.0.0.1 anfragt.
Einsatzbegrenzung
XAMPP ist ein vollwertiges Produkt und prinzipiell auch fähig als Produktivsystem eingesetzt zu werden, jedoch ist es nicht für den Produktionseinsatz gedacht, sondern für die Entwicklung von komplexen Webseiten. Aus diesem Grund ist XAMPP absichtlich NICHT restriktiv, sondern im Gegenteil sehr offen vorkonfiguriert, was für die Entwicklung ideal ist, da so ohne Restriktionen durch das System entwickelt werden kann. Für einen Produktionseinsatz ist das insbesondere aufgrund der offenen Sicherheitsfeatures allerdings nicht geeignet.
htdocs
Die Entwicklung einer Webseite beginnt in der Regel mit dem Speichern einer HTML-Datei auf dem Server. Das Verzeichnis htdocs, das unterhalb des xampp-Verzeichnisses in dem Installationsverzeichnis zu finden ist, beinhaltet alle über den Server ansprechbaren Webseiten. Die dort gespeicherten HTML-Dateien sind über die URL http://localhost/nameDerDatei.html aufrufbar. Es ist ratsam in diesem Verzeichnis eine Ordnerstruktur anzulegen, um eine gewisse Übersichtlichkeit zu erhalten. In diesem Fall muss der entsprechende Pfad in der URL angegeben werden:
http://localhost/OdnerName1/OrdnerName2/nameDerDatei.html .
Werden in der HTML-Datei Veränderungen vorgenommen, so wird dies durch erneutes Laden der Seite im Browser sichtbar.
Links
https://de.wikipedia.org/wiki/Client-Server-Modell
https://de.wikipedia.org/wiki/Server_(Software)
https://de.wikipedia.org/wiki/Hostrechner
https://de.wikipedia.org/wiki/Server_(Software)#Bekannte_Server-Typen
Hinweise für die Referierenden
hre Präsentation laden Sie bitte in den ILIAS-Kursordner hoch.
Folgende Stichpunkte fürs Referat:
Server / Client-Server-Kommunikation
- Server sind nicht nur "große Kisten" in Rechenzentren (die Software ist vor allem entscheidend).
- Erklären Sie:
- Was ist ein Server?
- Was ist ein Client?
- Was ist ein Service/Dienst?
- Wie kommunizieren Client und Server miteinander?
- Was ist (im Client-Server-Modell) ein „Request“/eine „Anfrage“? Und was ist in diesem Zusammenhang eine „Antwort“?
- Peer-to-Peer-Netzwerk: das Gegenteil des Client-Server-Modells
- Für welche Aufgaben werden Server hauptsächlich eingesetzt? Gibt es "spezialisierte" Server?
Webserver:
- Erklären Sie:
- Was ist HTTP und was regelt es? Was ist ein HTTP-Statuscode?
- Stellen Sie insbesondere die Arbeit eines Webservers vor!
- Wofür benötigt man die Skriptsprache PHP? Wofür eine Datenbank wie MySQL oder MariaDB?
- Was ist XAMPP und wofür benötige ich diese Software? Wie funktioniert Sie?
- Zeigen Sie die Funktionsweise von XAMPP! Erläutern und präsentieren Sie (beispielsweise auf Ihrem eigenen Rechner) die Installation und Einrichtung des XAMPP (siehe oben genannte Punkte)!