next up previous contents
Next: Web-Client Up: Begriffsbildung Previous: Begriffsbildung

Web-Server und das HTTP

Im World Wide Web stellen Web-Server Information in Form von Dateien zur Verfügung, auf die mit Hilfe von Clients zugegriffen werden kann. Ein Web-Server ist ein Software-Programm, das auf Dateien zugreifen und sie anschließend an Clients verschicken kann. Nach dem Client-Server-Prinzip stellt ein Web-Client eine Anfrage an einen Web-Server, der daraufhin die Anfrage bearbeitet und ein Ergebnis zurückliefert. Web-Server warten auf Anfragen und starten dann erst Prozesse und weitere Programme, um die Anfragen zu bearbeiten. Es können also nur auf Initiative der Clients Daten zwischen Servern und Clients ausgetauscht werden.

Web-Server können auch spezielle Programme ausführen, die es erlauben, den Dokumenten oder dem Web-Server selbst erweiterte Funktionalitäten hinzuzufügen. Sogenannte Hilfsprogramme, die das Erweitern der Server-Funktionalität erlauben, stellen sich aus vordefinierten Funktionen zusammen, mit denen die Kernfunktionen des Servers angesprochen und somit erweitert oder verändert werden können. Das Schreiben von Hilfsprogrammen erfordert umfassende Programmierkenntnisse, da ein fehlerhaftes Programm den Server zum Absturz bringen kann.

Mit Hilfe von CGI-Programmen können Web-Server Clients dynamisch erzeugte Web-Seiten anbieten. Meistens ist ein CGI-Programm mit einem Formular verknüpft. Nach Eingabe der Daten in das Formular und anschließendem Abschicken des Formulars werden die eingegebenen Daten zusammen mit dem Namen des CGI-Programms, das sie bearbeiten soll, vom Web-Client an den Server geschickt. Der Web-Server ruft dann das CGI-Programm auf und übergibt ihm die Daten.

Ein Server nutzt das Common Gateway Interface, um Daten an das CGI-Programm zu übergeben. Dabei wird die Art der Datenübertragung durch die zwei HTTP-Methoden GET oder POST bestimmt, mit denen ein CGI-Programm aufgerufen werden kann. Wird ein CGI-Programm mit Hilfe der GET-Methode aufgerufen, so übergibt der Client die Daten im URI-Pfad an den Server. Ein URI (Uniform Resource Identifier) ist eine Zeichenreihe, die eine bestimmte Datei identifiziert. Der Ort, an dem die Datei auf einem Web-Server gespeichert ist, kann entweder absolut - also mit Servername, Pfad und Name der Datei - oder relativ zu einem Basis-URI - also nur Pfad und Name der Datei - angegeben werden. Dagegen enthält ein URL ( Uniform Resource Locator) im Gegensatz zu einem URI zusätzlich noch das Zugriffsprotokoll, mit dem auf die Datei zugegriffen wird. Ein Beispiel-Aufruf für ein CGI-Programm mittels einem URI wäre:

     GET /cgi-bin/script?ort=hier&zeit=jetzt HTTP/1.0

``/cgi-bin/script'' stellt dabei das aufgerufene CGI-Programm dar, dem, getrennt durch ein ''?'', die Daten übergeben werden müssen. In diesem Fall sind es die Variable=Wert-Paare ``ort=hier'' und ``zeit=jetzt''. Am Ende der Anfragezeile wird die HTTP-Version angegeben, die für die Anfrage verwendet wird.

Der Server muß diesem CGI-Programm die Daten bereitstellen. Dazu verwendet er entweder Umgebungsvariablen oder die Standardeingabe. Im Falle eines GET-Aufrufs wird die Zeichenkette in der Umgebungsvariable ''QUERY_STRING'' bereitgestellt. Bei einem POST-Aufruf wird in der Variable ''CONTENT_LENGTH'' die Länge der Zeichenkette in Bytes eingetragen, wobei die eigentliche Zeichenkette dem CGI-Programm über die Standardeingabe (STDIN) zur Verfügung gestellt wird. Die POST-Methode eignet sich im Gegensatz zur GET-Methode eher für die Übertragung von größeren Datenmengen.

Das CGI-Programm verarbeitet die ihm übergebenen Daten und erzeugt eine Ausgabe, die vom Web-Server an den Client geschickt wird (siehe Abbildung [*]).


  
Abbildung: Ablauf beim Aufruf eines CGI-Programms

Clients und Server benutzen das HyperText Transfer Protocol (HTTP) zur Kommunikation. Für jede Anfrage eines Web-Clients an einen Web-Server wird eine Verbindung zwischen den beiden hergestellt, über die Daten ausgetauscht werden und die anschließend wieder beendet wird. Ein Client schickt dabei die Anfrage an den Server, woraufhin dieser die angeforderte Datei zurückschickt. Enthält das zurückgeschickte Dokument auch noch eingebundene Bilder-Dateien oder Dateien anderen Formats, so muß zur Übertragung jeder einzelnen Datei eine eigene Verbindung zwischen dem Server und dem anfragenden Client aufgebaut werden, da je HTTP-Request nur eine Datei übertragen werden kann.

Das HTTP ist ein zustandsloses Protokoll der Anwendungsebene. Das heißt, daß sich Web-Server nach Beendigung einer Verbindung keine Statusinformationen zu der Verbindung merken. Der Server gibt nach dem Absenden der Antwort alle Ressourcen, die zur Bearbeitung der Client-Anfrage nötig waren, wieder frei.

Eine Anfrage wird als HTTP-Request bezeichnet und enthält folgende Felder:

     HTTP-Methode Request-URI HTTP-Version
Die HTTP-Methode kann GET, HEAD, POST, PUT, DELETE oder TRACE sein und beschreibt die Art, wie eine Datei vom Server an den Client zurückgesandt werden soll. Mit der Methode GET wird z.B. eine Datei angefordert, deren Name in der Request-URI angegeben wird, während mit der Methode HEAD nur Informationen über die Datei angefordert werden, nicht aber deren Inhalt. Diese Methode wird meistens verwendet, um das Datum oder die Größe der Datei zu erfahren. Die Adresse der Datei kann in dem Request-URI auf zwei Arten angegeben werden: Die erste Art wird angewandt, falls die Anfrage an Proxy-Server gerichtet ist, während die zweite Art von Clients nur an Web-Server gesendet wird. In diesem Fall wird in der Version 1.1 des HTTP zusätzlich noch ein Host-Header mit der Anfrage mitgeschickt, in dem der Name des Servers angegeben wird. Das Feld HTTP-Version gibt die Version des für die Anfrage verwendeten Protokolls an. Ein HTTP-Request kann also folgendermaßen ausschauen, falls ein Client von dem Server www.myserver.tld die Datei file.html anfordern will:
     GET http://www.myserver.tld/file.html HTTP/1.1
falls die Anfrage über einen Proxy umgeleitet wird, oder
     GET file.html HTTP/1.1
     Host: www.myserver.tld
falls die Anfrage direkt an den Server gesendet wird, auf dem sich die Datei befindet.

Die Antwort auf eine Anfrage wird als HTTP-Response bezeichnet und besteht aus einer Status-Zeile, einem Response-Header und gegebenfalls dem Inhalt der angeforderten Datei, dem Message-Body. Die Status-Zeile gibt die verwendete HTTP-Version an, einen Status-Code (siehe dazu Anhang [*]) und die dazugehörige Beschreibung des Status-Code. In dem Response-Header sendet der Server zusätzliche Informationen über sich selbst an den Client, Informationen über die Art und den Typ der gerade übertragenen Datei oder auch über die Art der Authentifizierung, die notwendig ist, falls man auf eine geschützte Datei zugreift.

Durch das steigende Interesse am World Wide Web hat sich die Struktur der Web-Server, die Informationen zum Abruf anbieten, sehr stark verzweigt und erweitert, so daß eine Vielzahl kommerzieller Dienstleister das Bereitstellen der Server übernommen hat. Solche Dienstleister heißen Internet Service Provider und bieten ihren Kunden nicht mehr nur die Anbindung ihrer Unternehmen an das Internet, sondern unter anderem auch den Betrieb deren Web-Server oder auch nur das Bereitstellen der Informationsseiten im Web.

Wenn jemand im World Wide Web Informationen zur Verfügung stellen möchte, so müssen die gesamten Dokumente auf einem Web-Server gespeichert werden. Ob eine Firma ihren eigenen Web-Server betreibt oder sich aus Gründen der Effizienz oder der Bequemlichkeit mit mehreren anderen einen teilt, muß in Erwägung gezogen werden. Für jede Entscheidung gibt es mehrere Gründe und mehrere Lösungen. Die bekanntesten sind folgende:

Eigener Server im Haus:
In diesem Fall betreibt eine Firma ihren eigenen Server, der in ihren Räumen auf dem Firmengelände plaziert ist und über den sie Informationen im Internet zur Verfügung stellt. Lediglich für die Anbindung an das Internet wird ein Provider ausgesucht.
Hier ist es sehr wichtig, daß innerhalb der Firma ausreichend qualifizierte Mitarbeiter zum Betreiben des Servers vorhanden sind oder für diesen Aufgabenbereich von außen hinzugenommen werden. Außerdem sollte dafür gesorgt sein, daß innerhalb der Firma genügend Hardware- und Netzwerkressourcen (wie z.B. PCs und Netz-Leitungen, die über genügend Bandbreite verfügen) vorhanden sind, um einen qualitativen und schnellen Informationsdienst realisieren zu können. Falls eine dieser beiden Bedingungen nicht erfüllt werden kann, sollte eine der nächsten Möglichkeiten in Betracht gezogen werden.
Eigener Server bei einem Provider:
Falls eine Firma einen aufwendigen und vielbesuchten Web-Auftritt unterhalten möchte und deswegen einen eigenen Server-Rechner benötigt, für dessen Betrieb und Wartung aber keine eigenen Ressourcen wie Hard- und Software und Personal zur Verfügung stellen möchte, dann ist diese Variante eine sinnvolle Lösung.
Hier ist für den Fall, daß nur Informationen im Internet veröffentlicht und weitere Internetdienste nicht benötigt werden, keine eigene Internet-Anbindung der Firma notwendig, was aber in dieser Kombination eher nicht vorkommt. Für die Aktualisierung der Dateien auf dem Server wird ein physikalischer Zugriff der Firma auf den Server benötigt. Dieser Zugriff kann über eine Wähl- oder Standleitung zum Internet Provider hergestellt werden.
Bei einer Wählleitung wird eine Verbindung zum Internet nur dann aufgebaut, wenn Daten zwischen Internet und lokalem Rechner ausgetauscht werden. Im Gegensatz dazu bedeutet eine Standleitung eine permanente Verbindung zwischen Kunde und Provider. Diese lohnt sich natürlich nur dann, wenn höhere Datenvolumina ausgetauscht werden oder die Nutzungszeit der Leitung sehr hoch ausfällt.
Mieten von Speicherplatz auf dem Server eines Providers:
Falls eine Firma nicht die Mittel, Kenntnisse oder das Personal dafür hat, einen eigenen Server zu betreiben, kann sie diese Aufgabe vollständig an einen Internet Service Provider vergeben. Die Firma muß sich dann weder um die richtige Installation und Konfiguration des Servers kümmern, noch muß sie ihn warten oder überwachen.

next up previous contents
Next: Web-Client Up: Begriffsbildung Previous: Begriffsbildung
Copyright Munich Network Management Team