Netzwerktechnik: Client-Server-Systeme / Webserver / XAMPP

Auf einen Blick

"Server" – das sind nicht nur die großen Kisten, die man sich vorstellt, wenn man an ein Rechenzentrum denkt. Denn es geht hier nicht nur um die verwendete Hardware, sondern die Dienste/Services, die auf einem solchen Server installiert sind. Das bedeutet: Auch auf einem ganz gewöhnlichen PC oder Notebook kann eine Server-Software laufen. Bei manchen Arten von Services ist das sogar ganz sinnvoll, beispielsweise wenn man zum ersten Mal eine Webseite programmiert.

What could possibly go wrong? from r/techsupportgore

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.

Es gibt verschiedene sogenannte Protokolle, über die eine einheitliche Kommunikation gewährleisten sollen.

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.

Downloaden können Sie den XAMPP 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
https://de.wikipedia.org/wiki/Port_(Protokoll)
https://de.wikipedia.org/wiki/Liste_der_standardisierten_Ports

Interview über die Anfänge und Entwicklung des Internets: "50 Jahre Internet – das Rückgrat der digitalen Welt": https://www.sueddeutsche.de/digital/internet-geschichte-arpanet-hasso-plattner-meinel-1.4651890

Über die Geschichte des Internets – und vor allem den Unterschied zwischen Internet und WWW: https://t3n.de/news/world-wide-web-internet-unterschied-740611/

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?
  • Was sind Protokolle? Welche Protokolle werden heutzutage standardmäßig verwendet? Recherchieren und nennen Sie Beispiele!
  • Was sind Ports? Was bedeutet, dass ein Port "offen" ist?

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)!