Kleine Einführung in die WWW-Kommunikation
-
Zwischen Internet-Browser (Netscape, Internet Explorer) und HTTP-Server
besteht eine "verbindungslose" Kommunikation: Der Browser fordert Dokumente
vom Server an, der Server liefert das Dokument an den Browser, dann wird
die Verbindung sofort wieder beendet. (Anders als z.B. eine typische Telnet-Session,
z.B. telnet thales). Der Browser interpretiert dann den HTML-Code
und stellt ihn am Bildschirm dar.
-
Ein HTTP-Server ist ein "ganz normales" Programm (C-Programm, Perl-Programm),
das auf einem beliebigen Computer läuft. An unserer Fakultät
ist es der in der UNIX-Welt weitverbreitete Apache-Server auf der Thales.
Die Kommunikation erfolgt über TCP/IP und Sockets (siehe Soft II).
Per Voreinstellung lauscht der Server auf Port 80. Das Serverprogramm
muß nicht umfangreich sein: Der Tiny-HTTP-Server für die Übungen
besteht aus nur 200 Zeilen Perl-Programmtext!
-
Die Kommunikation vom Browser zum Server erfolgt über ASCII-Kommandos
im Hypertext Transfer Protocol. Um z.B. das Dokument /sai/index.html
vom Server www.mathematik.uni-ulm.de zu holen, verbindet sich der
Browser an Port 80 der Thales (www.mathematik.uni-ulm.de) und schickt die
folgende Zeile ab:
GET /sai/index.html HTTP/1.0\n\n
Der Server schickt daraufhin einen kurzen Status-Header und dann das
gewünschte Dokument an den Browser und die Verbindung wird beendet.
-
Man kann grob unterscheiden zwischen statischen und dynamischen
Dokumenten auf dem Server:
-
statisch: sämtliche HTML-Dokumente (ASCII-Dateien) einschließlich
Bilder
-
dynamisch: von CGI-Skripten (Datenbankabfragen, Anmeldeformulare etc.)
erzeugter HTML-Code, der z.B. mit Angaben des Benutzers verknüpft
wird.
-
Es gibt auch statische und dynamische Dokumente auf Seiten
des Browsers:
-
statisch: typischer HTML-Code
-
dynamisch: Java-Applets und Java-Skript sind Programme, die im Kontext
des Internet-Browsers ablaufen. Der Browser agiert als Programminterpreter.
Gif-Animationen werden vom Browser als bewegte Bilder dargestellt.
-
CGI-Skripte laufen im Kontext des Servers ab. Sie sind eigenständige
Computerprogramme (C, Perl, Awk etc.) die vom Server aus als externe
Programme (und damit mit den Rechten des Servers!!) gestartet werden. Sie
müssen auf einem speziellen Verzeichnis stehen, meistens ist das /cgi-bin.
-
Die Kommunikation zwischen Server und CGI-Skript läuft via Standardeingabe
und Standardausgabe sowie einigen Umgebungsvariablen, die
der Server vor dem Aufruf des CGI-Programms setzt. Es gibt zwei Methoden
der Kommunikation zwischen Server und CGI (festgelegt in der Umgebungsvariable
REQUEST_METHOD):
-
GET: Parameterübergabe vom Server an das Skript über die
Umgebungsvariable QUERY_STRING. Hier stehen die übergebenen
Parameter durch & getrennt drin.
-
POST: Es werden CONTENT_LENGTH Bytes vom Server an die Standardeingabe
des Skripts übergeben. Dadurch können auch größere
Datenmengen fliessen.
Die Rückkommunikation erfolgt immer über die Standardausgabe
des CGI-Skripts an den Server. Die erste Ausgabezeile des CGI-Skripts muß
angeben, welche Art der Daten ausgegeben werden. Zumeist ist es:
Content-type: text/html\n\n
Danach folgt dann der generierte HTML-Output.
-
Typischer Einsatz von CGI-Skripten:
-
Ausfüllen von Formularen (z.B. Anmeldung)
-
interaktive Datenbankabfragen
-
Fernwartung von Computern und HTTP-Servern
-
. . .