Webbasierte Adressdatenbank
Was ist ein Webserver
Ein Web Server ist kein Computer, sondern ein Programm. Der Web Server (oder auch HTTP
Dämon, oder kurz httpd) läuft auf einem Rechner,
der in der Regel eine direkte Verbindung zum Internet hat (aber nicht haben muß). Dieses
Server Programm stellt ein Informationsangebot von Web-Seiten (z.B. HTML Seiten) und
Grafiken bereit. Daneben können auch Programme (in unserem Falle Perl Skripts) ausgeführt
werden um dynamische Web Seiten zu generieren. Der httpd kann gleichzeitig mehrere
Anfragen berarbeiten!! Die grundsätzliche Kommunikation zwischen einem
Web Browser und Web Server wurde bereits in HTTP und CGI Protokoll
dargestellt. Ein solches Serverprogramm kann natürlich auch auf dem heimischen Rechner
offline (ohne Verbindung zum Internet) betrieben werden. Zur Funktion benötigt man
allerdings TCP/IP.
TCP/IP
Die Kommunikation der Rechner im Internet basiert auf der Gruppe der TCP/IP Protokolle.
Diese Gruppe hat ihren Namen von den zwei wichtigsten Protokollen dieser Gruppe:
TCP Transmission Control Protocol und IP Internet Protocol.
Über die Funktionsweise dieser Protokolle wurden bereits sehr viele Bücher geschrieben,
ich will hier nur einige wenige grundsätzliche Bemerkungen dazu machen. Eine Eigenheit des
TCP/IP ist, daß jeder Rechner im Internet mit einer Nummer bezeichnet wird, Dies IP Nummer
besteht aus vier Byte, jeweils durch einen Punkt getrennt (z.B. 192.178.16.1). Solche Nummern
sind für den Benutzer denkbar schlecht zu merken, deshalb werden diesen IP Nummern Namen
zugeordnet, z.B. www.ic.pirmasens.de . Um nun aus den Namen die zugehörigen IP Nummern zu
erhalten werden sogenannte DNS-Server (ist wieder ein Programm, welches auf Rechnern im
Internet läuft) verwendet. DNS bedeutet Domain Name Service.
Geeignete Web Server
Ich will hier nur ein Produkt nennen: Apache
Der Apache Web Server läuft auf fast allen Betriebssystemen (Unix, Linux, Win95/98, WinNT ...) und
ist der heute am häufigsten eingesetzte Webserver (ca 55% aller Web Server im Internet).
Grundsätzliche Arbeitsweise eines Web Servers
Der httpd kann also, wie oben gesehen über eine IP Nummer angesprochen werden.
Da auf einem Server Rechner mehrere Serverprogramme für die unterschiedlichsten
Anwendungen betrieben werden können (z.B FTP, Telnet, SQL-Datenbank,
Web Server u.a.) werden sogenannte Ports verwendet um die unterschiedlichen Dienste
anzusprechen. Um einen bestimmten Port zu verwenden, hängt man die Portnummer mit
einem Doppelpunkt getrennt an die IP Nummer an. Normalerweise spricht man einen Web Server
auf dem Standard Port 80 an, dann kann das Anhängen der Portnummer entfallen. Den Web
Server auf dem eigenen Rechner spricht man entweder über http://localhost
oder http://127.0.0.1 an.
Damit ein Web Server auch HTML Seiten liefern kann müssen diese in einem bestimmten
Verzeichnis stehen, in der Regel in htdocs. Dieses Verzeichnis liegt beim Apache
Web Server unter Linux in der Regel in /usr/local/httpd/htdocs, bzw heute unter
/srv/www/htdocs,unter Windows je nach
Installation unter C:\httpd\htdocs. Wenn man nun die Seite index.html im HTML-Root
Verzeichnis des Web Servers auf dem Browser abrufen will, genügt ein
http://localhost/index.html; der Web Server setzt das dann auf das richtige
Verzeichnis um. Um Programme (z. B. Perl Skripte) über den Web Server ausführen zu können
muß ein entsprechendes Verzeichnis auf dem Web Server eingerichtet werden z. B.
cgi-bin. Dieses liegt beim Apache normalerweise in /usr/local/httpd/cgi-bin,
unter Windows in C:\httpd\cgi-bin. Zusätzlich muß dem Web Server noch über die
Konfiguration mitgeteilt werden, daß die Files innerhalb des cgi-bin
Verzeichnisses ausführbar sind, bzw ausgeführt werden dürfen.
Was passiert eigentlich, wenn man ein Perl Programm über den Web Server aufruft? Der
Apache nimmt das File und gibt es an eine Shell (Komandozeilen Interpreter) zur Abarbeitung weiter,
diese findet in der ersten Zeile (Shebang Zeile) einen Eintrag
#!/usr/bin/perl
. Diese Zeile weist die Shell darauf hin, das der
Perl Interpreter im Verzeichnis /usr/bin steht. Unter Windows wird
im grafischen Konfigurationstool die Endung .pl als Perlprogramm gekennzeichnet und der
Pfad zum Perl Interpreter, in der Regel C:\Perl\bin\perl.exe angegeben. Dann führt der
HTTPd beim Aufruf einer .pl Datei aus dem cgi-bin Verzeichnis diese mit
dem Perl Interpreter aus. Das Perl Programm gibt seine Ausgaben (print etc) an die
Standard Ausgabe, hier der httpd, welche dieser an den Browser weiterreicht (vergleiche auch
HTTP und CGI Protokoll).
Literaturhinweise:
- selfhtml von Stefan Münz
- CGI FAQ
- Webmaster in a Nutshell
Stephen Spainhour, Valerie Quercia
übersetzt von Eva Wolfram und Thomas Nagel
ISBN 3-930673-55-X
O'Reilly - Apache das umfassende Referenzwerk
Ben Laurie und Peter Laurie
übersetzt von Peter Klicman
ISBN 3-89721-127-0
O'Reilly
Zurück zum Anfang dieses Projekts.