5. Webserver
Die Entwicklung des HTTP-Servers ist eng mit dem britischen Physiker und Informatiker Tim Berners-Lee verknüpft. 1989 regte dieser an, den Informationsaustausch des CERN (der Europäischen Organisation für Kernforschung) über ein Hypertext-System einfacher und schneller zu gestalten. Zusammen mit Robert Cailliau legte er 1990 einen Projektplan vor, aus dem im Laufe der Zeit neben dem ersten Webserver namens «CERN httpd» auch der erste Webbrowser und einige weitere Grundlagen des Webs (wie HTML und HTTP) hervorgingen. Berners-Lee gilt daher heute als Begründer des World Wide Web.
5.1 Webserver-Operation
Sobald ein Webserver eingerichtet ist und die Inhalte darauf übertragen wurden, kann er den Betrieb aufnehmen. Exemplarischer Vorgang: Wenn du die BirdGraphics-Website besuchen möchtest und dazu im Browser www.birdgraphics.ch eingibst, wird folgender Ablauf ausgelöst:
-
Der Browser übermittelt die URL zuerst an einen Nameserver (DNS-Server). Der alphanumerische Domain-Name (www.birdgraphics.ch) wird dabei in eine numerische IP-Adresse (80.74.141.34) umgewandelt und zum Browser zurückgeschickt.
-
Der Browser kontaktiert den Webserver unter der erhaltenen IP-Adresse und stellt eine Anfrage bezüglich der Webseiteninhalte.
-
Der Webserver beantwortet die Anfrage und sendet die aufgerufene Webseite zurück an den Browser. Diese Antwort, beispielsweise eine HTML-Seite, kann ein statisches Dokument auf dem Server sein oder dynamisch erzeugt werden (PHP, Javascript). Der Browser interpretiert die Antwort, was oftmals weitere Anfragen an den Server nach sich zieht, zum Beispiel nach verknüpften CSS-Dateien oder eingebundenen Bildern, welche Teil der angeforderten Webpage sind. Dieser Vorgang wiederholt sich so lange, bis alle Einzelteile der Seite übertragen wurden.
5.2 Webserver-Technik
Die Software eines HTTP-Servers stellt Daten für die Darstellung von Webinhalten bereit und übermittelt diese via HTTP bzw. HTTPS. Diese Übertragungsprotokolle beruhen auf den Netzwerkprotokollen IP und TCP (selten UDP). Ein Webserver kann die Inhalte gleichzeitig an verschiedene Clients ausliefern, wobei die Geschwindigkeit und die Anzahl der gleichzeitig verarbeitbaren Nutzeranfragen (requests) u. A. von der Hardware sowie der Auslastung des Hosts abhängen. Zudem spielt die Komplexität der Webinhalte eine Rolle: die Auslieferung statischer Seiten benötigt weniger Ressourcen als die Auslieferung dynamischer Inhalte.
Zusätzlich zur Bereitstellung der Webinhalte bieten moderne Webserver-Programme zahlreiche weitere Funktionen:
Sicherheit | Verschlüsselung der Kommunikation zwischen Server und Client via HTTPS, Verwaltung von SSL-Zertifikaten |
FTP | Bereitstellen der Funktionalität für die Übertragung von Dateien (File Transfer Protocol = FTP) |
Caching | Funktionalität für das Zwischenspeichern von dynamischen Dokumenten, um Anfragen schneller verarbeiten zu können → verhindert Überlastung |
Skriptsprachen | Bereitstellung/modulare Einbindung serverseitiger Skriptsprachen, z. B. PHP, JavaScript, .NET, um Webseiten dynamisch zu erzeugen |
Authentifizierung | Methoden zur Benutzer-Authentifizierung (LDAP, HTTP, Textdateien), um bestimmte Bereiche einer Website/Anwendung zugänglich zu machen |
Umleitung | Weiterleitung an andere Server, Umschreiben und Weiterleitung von Anfragen |
Dateitypen | Bereitstellen von Informationen über verschiedene Dateitypen |
5.3 Webserver-Software
Die am weitesten verbreiteten Webserver-Programme sind Apache HTTP Server, nginx sowie Microsoft Internet Information Services (IIS) und Google Web Server. Apache und nginx sind freie Software, während es sich bei IIS und Google Web Server um proprietäre Produkte handelt.
Links
Apache HTTP Server | Apache HTTP Server |
nginx HTTP Server | nginx |
Microsoft IIS | MS IIS |