Um Informationen im WWW anbieten zu können, werden Server-Programme benötigt. Diese Webserver sind unter ihrer jeweiligen IP-Adresse zu erreichen und "lauschen" auf einem bestimmten Port (standardmaessig Port 80). Clients (z.B. der Navigator oder der IE) können HTTP-Anfragen an diesen Server stellen, und Dokumente abfordern.
Ursprünglich boten Webserver nur statische Informationen an, d.h. die angeforderten HTML-Dokumente und Bilder lagerten fertig auf einem Speichermedium und wurden unverändert an den Client versandt. Grosse Websites und vor allem Suchmaschinen lassen sich aber so nicht realisieren.
Über die standardisierte Schnittstelle "Common Gateway Interface" (CGI) wird es Webservern ermöglicht, externe Programme zu starten, die aufgrund der vom Client übersandten Daten eine HTML-Seite (oder ein beliebiges anderes Dokument!) generieren. Das CGI-Programm wird dabei über die URL identifiziert und die Daten werden als Umgebungsvariablen an das Programm übergeben.
Für die CGI-Programmierung sind prinzipiell alle
Programmiersprachen, die über ausreichend mächtige Ein- und
Ausgabefunktionen verfügen, geeignet. Da CGI-Scripte in der Regel
relativ kurz sind und häufig nur der Anpassung der Parameter
und Resultate an existierende Anwendungen dienen, kommen vielfach
interpretierte Sprachen wie Perl zum Einsatz. Für zeitkritische CGIs wird aber auch schon mal auf C zurückgegriffen. In den letzten Jahren entstanden jedoch immer mehr speziell für das Web geschaffene Sprachen wie PHP, die eine wesentlich komfortablere HTML-Generierung ermöglichen. Hier können die Befehle direkt in HTML-Gerüste eingefügt werden.
Während der Webserver für jeden Aufruf eines CGI-Programms einen teuren Prozess starten muss, ermöglicht der Apache-Webserver auch den Server über Module zu erweitern. Wird PHP als Modul in den Apache Webserver hineinkompiliert, muss nicht für jeden PHP-Aufruf ein neuer Prozess gestartet werden. Das PHP-Modul simuliert zwar für das PHP-Skript die CGI-Schnittstelle, technisch gesehen ist dies aber bereits kein CGI mehr.
Die Server-Modul-Kommunikation von Apache ist jedoch noch ineffizient. Der vollständig in Java geschriebene Server Tomcat erlaubt es sogennanten "Servlets" - kleinen in Java geschriebenen Programmstücken - auf HTTP-Anfragen zu reagieren. Der Vorteil hierbei ist, dass Server und Servlet im selben Prozess laufen. Die Verwendung von JSPs ermöglicht ausserdem die einfache Erstellung von Servlets.
Eine wesentliche Aufgabe von Webservern ist auch in der
Zugriffskontrolle und Benutzerverwaltung zu sehen. Hierbei
können unterschiedliche Mechanismen zum Einsatz kommen, die sich
zum Teil erheblich in ihrem Sicherheitniveau unterscheiden. Bei
hohen Sicherheitsanforderungen sind nur Kryptographie-basierte
Verfahren, wie z.B. SSL und
S-HTTP geeignet.
| Mi 12-16 Uhr
| Raum: B-201 und RZ
| Start: 05.04.2006
|
Eine Veranstaltung des Arbeitsbereichs Verteilte Systeme und Informationssysteme (VSIS)
|
|
Letzte Änderung : 08.04.2001 - 15:21
EMail: prInt06@vsis.informatik.uni-hamburg.de