Multimediakurs Leinfelder: Inhalt / Modul 9: "Client-Server-Interaktion/ 9.3.1 Webserver-Möglichkeiten

(© copyright)     Letzte Änderungen:20.03.2011


Modul 9.3.1: Serverseitige Aspekte von Client-Server-Interaktionen: Webserver-Konfigurationsmöglichkeiten

Modul 9-Start

9.1: Einleitung und Generelles |
9.2: Web-Email-Feedback | Formulare | Formularverwendung und -aktionen
9.3: Serverkkonfigurierung, plugins und cgis | Datenbanksatzerstellung via Web |
Datenbanksuche via Web |Suchergebnisanzeige im Web | Datensatzeditierung via Web
vorformulierte Datenbankabfragen und db-basierte Webseiten |
Webseiten mit SSI, ASP, JSP, PHP, XML |
9.4: Zusammenfassung

Sprungmarken zu dieser Seite:

Allgemeines | Realms, User und Passwörter |
Suchmaschine | Counter | cgi, plugins und Servlets |
Benutzung interaktiver Dienste auf anderen Servern | sonstige Servertypen

Allgemeines

Webserver: Ein Computer wird zum Webserver, indem er mit Standleitung via TCP/IP am Internet angeschlossen ist, eine feste IP-Nummer hat und entsprechende Webserversoftware installiert ist (siehe auch Modul 2: Netzwerkbasics). Es gibt sehr verschiedene Serversoftware, am verbreitetsten ist die kostenlose Software Apache für Unix, Linux und MacOS-X (ebenfalls ein Unix-System). Daneben gibt es viele weitere Lösungen u.a. für NT-Rechner und Macs. An der Paläontologie München verwenden wir einen 4D-WebStar-Server für PowerPC (Mac), sowie teilweise andere Lösungen. Die modernen Betriebssysteme von Apple und Microsoft haben bereits kleine Webserverlösungen integriert, die freigeschaltet werden können, jedoch professionelleren Ansprüchen nicht genügen und insbesondere keine speziellen Client-Server-Interaktionen ermöglichen.

Die Konfiguration der Webserversoftware ist naturgemäß je nach verwendeter Software unterschiedlich. Wir werden hier auf keine Details eingehen und auch nicht alle Möglichkeiten (z.B. Einrichtung von Firewalls, Proxies, Upload per http etc.) eingehen, sondern nur einige wesentlichen Aspekte, die Interaktivität ermöglichen, kurz streifen. Die Erläuterungen basieren im wesentlichem auf dem WebStar-Server, sind in ähnlicher Weise aber auch auf anderen Webservern zu realisieren.

Obige Abbildung: Setting-Fenster der Webstar-Konfiguration. Links sehen Sie einge der möglichen Kategorien. Aufgerufen sind die Settings für SSI (vgl. unten). Hierbei ist z.B. eingestellt, dass viia sog. #exec und #include-Kommandos beeinflussbare Dateien nur im Ordner SSI innerhalb des Ordners CGI-BIN liegen dürfen (Erläuterungen weiter unten).

Rootverzeichnis: Innerhalb des Programmordners des Webservers (in unserem Fall von Webstar) befinden sich die für Webdienste freigegebenen Ordner. Darauf wird auch eine Domain bzw. eine http://ip-Adresse geroutet. Beim Aufruf einer Domain (z.B. www.palaeo.de) wird also nicht die unterste Hierarchie des Rechners (ein gesamtes Festplattenverzeichnis) sondern nur die Hierarchie eines als Root definierten Verzeichnisses angesteuert. In tiefere Hierarchien kommt man als http-Benutzer dann nicht.


Zugangsberechtigung: werden keine Voreinstellungen getroffen, sind in der Regel der Rootordner und alle darinliegenden Ordner und Dateien für das gesamte Web freigeschaltet. Die Nutzerberechtigung ist je nach verwendeter Serversoftware recht unterschiedlich.

In Webstar können sogenannte Realms angelegt werden (vgl. Abb. oben). Erscheint in einem URL ein als Realm festgelegtes Wort, z.B. intern, kann dieses geschützt bzw. nur für bestimmte Nutzer freigegeben werden. So wäre z.B. eine Datei intern.html oder intern.htm geschützt, aber auch eine Datei hallo.html, sofern Sie in einem Ordner intern liegt. Der gesamte Inhalt eines Ordners intern incl. evtl. vorhandener Unterordner wäre geschützt. Aber auch andere Ordner, die z.B. paleointern heißen, wären geschützt, ebenfalls eine Datei mit Name internat.html. Dies erlaubt umfassende Möglichkeiten. So müssen nicht immer alle zu schützenden Dateien im gleichen Ordner liegen.

Der Realm intern kann nun z.B. folgendermaßen geschützt werden:

Derartige Einstellungen können natürlich nur als Systemadministrator vorgenommen werden. Wenn Sie bei Ihrem Provider jedoch einen Apache-Server verwenden (und dieser entsprechend eingestellt ist), können Sie auch ohne Systemadministrator zu sein, einen oder mehrere Ordner mit Usernamen/Passwort-Konfigurationen sichern. Dazu müssen Sie mit einem Texteditor ein sog. htaccess-File anlegen, in dem Usernamen und Passwörter geregelt sind. Findet der Webserver ein derartiges htaccess-File in einem Ordner, liefert er Webseiten nicht mehr ohne entsprechende Passwortabfrage aus. Eine genaue Erstellungsanleitung finden Sie in Stefan Münzers Selfhtml-Kurs unter http://selfhtml.teamone.de/diverses/htaccess.htm

Hinweis: auch andere Servertypen sind teilweise so schützbar. Apples Quicktime-Streaming-Server erlaubt sog. qtaccess-Files, die analog das Aufrufen von Streaming-Filmen schützen bzw. nur via Passwort zugänglich machen.


Suchfunktionen: Sie kennen Web-Suchmaschinen wie z.B. Google.de, mit denen Sie das gesamte Web durchforschen können und ggf. auch Ihre Seiten angezeigt bekommen. Für eine detailierte Durchsuchung Ihres Webserverangebots gibt es jedoch häufig andere Möglichkeiten. Webstar erlaubt die sog. Indizierung von Ihnen definierter Ordner, wobei ein sogenanntes Index-File angelegt wird, dieses kann automatisch vom Webserver nach voreingestellter Zeit aktualisiert werden. Damit ist ein blitzschnelles Durchsuchen aller indizierten html-Files auf ihren Inhalt möglich. Man muss dazu ein Suchformular erstellen und je nach Server die richtige Action einstellen. Nach Fertigstellung dieses Multimediakurses werde ich eine entsprechende Funktion zur Verfügung stellen.


Seitenzähler: Jeder Seitenaufruf, genauer gesagt, jeder Dateiaufruf wird vom Server je nach Voreinstellung in einem Logfile festgehalten, dort wird auch noch angegeben, von wo die Seite aufgerufen wurde (domain oder ip-Adresse). Mit speziellen Tools können diese Logfiles dann ausgewertet und ggf. auch auf Webseiten dargestellt werden. So kommt man zu den beliebten Zugriffszahlen für ein Webangebot. Hierbei ist zu beachten, dass der Aufruf einer html-Seite nicht nur einen "Hit" bringt (für die html-Datei), sondern auch hits für alle eingebetteten Dateien (z.B. Bilder, Videos, Ton). Damit wird natürlich deutlich überzählt. Vielleicht auch deshalb ist es so beliebt, Bilder zu slicen (bringt viel mehr hits) oder auch Textlinks als Grafiken, am besten auch noch als Rollovers (bringt bis zu 3 hits pro Button) zu gestalten.

Zuverlässiger ist es, wenn pro Seitenaufruf nur einmal gezählt wird, egal wieviele Bilder etc. in der Seite eingebettet sind. Vielleicht genügt es ja auch, nur manche Seiten (z.B. Eingangsseiten) zählen zu lassen.

Mit WebStar funktioniert dies z.B. über eine serverseitige Scriptsprache, das sog. SSI (server side includes).

Bei Benutzung eines Webstar-Servers kann z.B. folgender Code in eine Webseite eingebaut werden:

<p>Diese Seite wurde <!--#counter var="counter palaeoeingangsseite" display="true"--> -mal aufgerufen.</p>

Wie Sie sehen, ist der Code ähnlich wie bei JavaScript mit Kommentarzeichen versehen <!-- ssi-code -->, damit wird er im Browser nicht abgearbeitet. Allerdings sieht der Webserver vor Auslieferung auf die Seite,, findet #counter, was er als ssi-Befehl erkennt. Da in der Variablen var ein counter palaeoeingeangsseite definiert ist, legt er diesen in einer Textdatei an und schreibt 1 hinein. Wurde die Zählerseite bereits angelegt, zählt er den vorgefundenen Wert um 1 hoch und schreibt den neuen hinein. Durch den Parameter display="true" wird die Zahl dann mit ausgeliefert und in die ausgelieferte Webseite geschrieben. Wäre false angegeben, würde genauso gezählt, aber die Zahl würde nicht auf der Webseite wiedergegeben.

Das war ein erstes einfaches Beispiel für die Verwendung serverseitiger Skriptsprachen. Man kann in den Servervoreinstellungen regeln, dass alle html oder htm-Files vor Auslieferung auf SSI-Befehle durchsucht werden. Das würde allerdings eine gewisse Verzögerung hervorrufen. Deshalb kann man eine oder mehrere Dateiendungen angeben, wie z.B. .shtml oder .ssi. Wird z.B. eine Seite index.shtml aufgerufen, weiß der Server, dass er SSI-Befehle erwarten kann, er durchsucht dann nur derartige Seiten.

Die Counterfunktion ist nur eine der vielen Möglichkeiten von serverseitigen Skriptsprachen. Mehr erfahren Sie hierzu unter 9.3.2


cgis, plugins, sapplets und servlets

Mit diesen Möglichkeiten ist nun besonders hohe Interaktivität möglich. Bei allen drei Möglichkeiten handelt es sich um kleine bis umfassende eigentständige Programme, die dadurch aufgerufen werden, dass in den auszuliefernden Webseiten bzw. im anfordernden URL ein spezieller Hinweis darauf gegeben ist, derartige Programme abzuarbeiten.

CGI heißt common gateway interface und dient vor allem dazu, angelieferte Daten, insbesondere von Formulareingaben weiterzuverarbeiten, also z.B. in eine Datenbank zu packen oder eine Datenbank zu einer Suchabfrage anhand der mitgelieferten Daten zu veranlassen, aus dem Ergebnis wieder eine Webseite zu erstellen und diese als Ergebnis zurückzuliefern. Beispiele hierfür finden Sie unter 9.3.2.

CGIs sind sehr häufig in der Programmiersprache Perl geschrieben, die ähnlich wie JavaScript nicht kompiliert werden muss und relativ leicht zu erlernen ist. Derartige perl-CGIs findet man recht häufig im Web, sie laufen aber meist nur unter Unix-Servern. Wenn Sie cgi-Programmierung mit Perl erlernen wollen, finden Sie in S. Münzers SelfHTML-Kurs ein cgi-perl-Tutorial.

Häufig ist die Konfiguration auf Servern auch so eingerichtet, dass die CGIs in einem ganz bestimmten Ordner liegen müssen, der geschützt ist, damit sie keinen Schaden anrichten können (rechts einige der cgis des Münchner Paläo-Webservers; hier sehen Sie auch den weiter oben erwähnten Ordner ssi innerhalb des cgi-bin-Verzeichnisses). Theoretisch kann man nämlich ein cgi schreiben mit dem Inhalt: lösche gesamte Festplatte des Webservers. Was dann passiert, wenn es aufgerufen würde, können Sie sich vorstellen. Das Hochladen bzw. die Ausführung von cgis muss also streng reglementiert sein. In den meisten Fällen können Sie zwar ein cgi in dieIhnen zugänglichen Webordner laden, sie laufen aber dort nicht.

CGIs können aber auch in vielen anderen Sprachen programmiert sein, z.B. in AppleScript (für Mac), in Java oder auch in C++. In Java programmierte Programmzusätze nennt man meist JavaServlets. Mit JavaServlets sind z.B. Chat-Programme realisierbar. Netscape produziert Server, auf denen auch serverseitige JavaScripte laufen, aber diese Technologie hat sich nicht sehr durchgesetzt. Auch Plugins sind nichts grundsätzlich anderes. Je nach Server unterscheiden sich auch die Begriffe.

Nebenstehend sehen Sie einen Ausschnitt aus den installierten Plugins für den Webstar-Server der Paläontologie München. Diei meisten dieser Plugins wurden bei der Installation automatisch eingerichtet, können aber durch Zusatzplugins ergänzt werden.

Das Plugin für Image Maps erlaubt z.B. die serverseitige Ausführung von ImageMaps (war früher wichtig: bevor man ImageMaps in html-Seiten einbetten konnte, mussten entsprechende Map-Files auf dem Server abgelegt werden. Das Plugin Search/SearchIndexer erlaubt die Indizierung von Webangeboten (s.o.), die Plugins JavaSapplet-Runner, sowie JRun-Servlet Runner erlauben die Ausführung von serverseitigen JavaApplets uns sonstigen Java-Applikationen, usw.

Für die veschiedenen Server gibt es viele kommerzielle, teilweise auch kostenlose Zusatzprodukte in Form von CGIs, Plugins oder Servlets, so dass Sie selbst keinen Programmieraufwand treiben müssen (allerdings ist die Konfiguration teilweise knifflig). Auf dem Webstar-Server der Paläontologie München laufen z.B.:

diverse online-Terminkalender über eine Pluginlösung (x-cal-Multi: http://www.calendarserve.com), mit der wie sehr zufrieden sind.

diverse Diskussionsforen (siehe z.B. den "Frage-nen-Paläontologen-Dienst" des Palaeo.de-Portals unter www.palaeo.de), verwendet wird die kostenlose cgi-Lösung Ceilidh (http://www.lilikoi.com), mit der wir ebenfalls sehr zufrieden sind.

weitere Diskussionslisten und Schwarze Bretter im Intranet-Bereich, ebenfalls als cgi-Lösung (confer.acgi; Link demnächst ###).

Für NT- und Unix-Server gibt es ebenfalls entsprechende Lösungen.


Interaktive Dienste von anderen Servern nutzen

Wenn Sie keinen Zugang zur Webserveradministration haben, können Sie viele der obigen Dienste auslagern und auf kostenlose Angebote im Web ausweichen, die vielleicht ein Reklamebanner einblenden, aber ansonsten sehr gut funktionieren und Sie auch nicht mit Konfigurationsarbeiten belasten. So gibt es Gästebücher, Zähler, Chaträume uvm., die Sie so einrichten können. Geben Sie entsprechende Suchbegriffe z.B. bei google.de ein, um derartige Angebote aufzuspüren.

Eines sollten Sie aber bedenken. Derartige Angebote sind teilweise überlastet. Damit wird dann ggf. auch der Aufbau Ihrer Seiten verzögert (wenn z.B. ein Zählerbild von einem derartigen Serverdienst auf Ihre html-Seite eingeladen werden muss).

Schauen Sie z.B. mal unter http://www.freepage.de nach derartigen Diensten.

Ein Zähler könnte dann z.B. so eingebunden werden:

<img src="http://www.freierzaehlerdienst.de/cgi-bin/zaehlen.cgi?df=rrl_counter.dat">

Dies ist übrigens ein fiktiver Dienst. Natürlich müssen Sie sich zuvor auf der Seite registriert haben und Ihren Zähler eingerichtet haben (oben heißt er rrl_counter.dat)


Weitere Servertypen im Internet:

Wir wollen hier nicht vollständig sein. Besonders wichtig sind natürlich ftp-Server (siehe Modul 2). Quasi jeder Webserver hat auch gleichzeitig einen ftp-Server eingebaut, oder lässt sich mit einem derartigen kombinieren. Zum Hochladen der html- und sonstigen Dateien durch den Webmaster verwendet man in der Regel das ftp-Protokoll. Dies bedeutet, dass der Rootordner des Webservers gleichzeitig auch der Rootserver des ftp-Servers sein wird. Damit es nicht zu Konflikten kommt, werden unterschiedliche Ports zugeordnet. Davon bekommt der Nutzer aber in der Regel nichts mit.

Besonders wichtig für uns sind Fileserver, auf denen Datenbanken laufen (man kann sie auch Datenbankserver nennen). Diese Datenbanken können dann vom Webserver aus, via cgis oder Skriptsprachen gefüttert werden oder auch abgefragt werden, damit werden wir uns im nachfolgenden Teilmodul 9.3.2 beschäftigen. Teilweise kann ein Datenbankserver auch selbst mit einem Webserver zusatzausgestattet sein (so z.B. bei der Datenbank FilemakerPro), wodurch das Anbinden der Datenbank an http erleichert wird.

Weiterhin wichtig können Streaming-Server sein (demnächst ebenfalls an der Paläontologie München vorhanden), von dem aus Filme und Sound in gestreamter Weise abgerufen werden können. Das Protokoll ist hierbei in der Regel nicht http, sondern rtps (Real Time Streaming Protocol). Wir werden hier nicht näher darauf eingehen. Daneben gibt es natürlich noch Mailserver (z.B. POP-Server), Chat-Relay-Server (ICR), Newsgroup-Server, Telnet-Server und einiges mehr....


>> Modul 9.3.2: Datenbankanbindung und serverseitiges Skripting

<< Modul 9.2: Client-Seite: Formulare und Co.