Ein Webserver ist das Programm, das auf einem Rechner auf Anfragen aus dem Netz wartet, sie annimmt und eine Antwort zurückschickt: eine HTML-Seite, ein Bild, eine Datei. Das Wort bezeichnet im Alltag zwei Dinge, die Software und den Rechner, auf dem sie läuft. Gemeint ist meist die Software.
- Webserver
Das Programm, das Anfragen aus dem Netz annimmt und Seiten, Bilder und Dateien zurückschickt.
Beispiel: „Der Webserver liefert die Startseite in 180 Millisekunden aus.“Auch: Web Server, HTTP-Server. Verbreitet sind Apache, nginx und LiteSpeed.
Abgrenzung zum Hosting: Webhosting ist das gemietete Paket, der Webserver das Programm darin.
Was ein Webserver bei jeder Anfrage tut
Er liest die Anfrage samt ihren HTTP-Headern, sucht heraus, welche Datei oder welches Programm gemeint ist, und schickt eine Antwort mit einem Statuscode zurück. Liegt die Datei bereit, geht sie unverändert heraus. Soll erst etwas berechnet werden, gibt er die Anfrage an einen Interpreter weiter, meist an PHP, und schickt dessen Ausgabe.
Dazwischen liegt alles, was Betrieb ausmacht: Umschreiben von Adressen, Weiterleitungen, Zugriffsschutz, Komprimierung und das Aushandeln der Verschlüsselung über TLS. Jeder dieser Schritte kostet Zeit, und zusammen ergeben sie die Antwortzeit, die der Besucher als Wartezeit erlebt.
Wie der Webserver mit Programmen und Datenbank zusammenspielt
Der Webserver selbst rechnet nichts aus. Er nimmt entgegen und gibt heraus; die Arbeit machen andere Programme. Bei einer Seite aus dem CMS fragt der Interpreter die Datenbank ab, baut aus Vorlage und Inhalt das HTML und übergibt es zurück an den Webserver, der es ausliefert.
Deshalb hilft ein Cache so stark: Liegt die fertige Seite schon als Datei, fällt die ganze Kette weg und der Webserver antwortet, als wäre es ein Bild. Dasselbe gilt für Bilder und Stylesheets, die er ohne Umweg ausgibt.
Was den Unterschied zwischen Webservern ausmacht
Nicht, ob eine Seite ausgeliefert wird, denn das können alle. Unterschiede zeigen sich unter Last, bei der Zahl gleichzeitiger Verbindungen, beim Umgang mit langsamen Clients und in der Art, wie konfiguriert wird: Apache liest .htaccess je Verzeichnis, nginx kennt das nicht und wird an einer Stelle eingestellt.
Für die tägliche Arbeit zählt eher, was du ändern darfst. Auf geteilten Paketen ist der Webserver vorgegeben und nur über .htaccess beeinflussbar; auf einem eigenen Server bestimmst du alles selbst und trägst dafür die Updates.