Einführung Webserver

Was ist ein Webserver?

Webserver übertragen Dokumente beziehungsweise Webinhalte an Clients (Browser), wie zum Beispiel an einen Webbrowser oder an eine Website.

Welche Webserver gibt es? (kleine Auswahl)

Apache Webserver

  • .htaccess
  • IPv6
  • HTTP/2
  • Perl, Lua und PHP
  • URL-Rewriting
  • FastCGI* Unterstützung mit Caching
  • Sitzungsverfolgung
  • Geolokalisierung basierend auf der IP-Adresse

„Im Allgemeinen sollten Sie .htaccess-Dateien nur verwenden, wenn Sie keinen Zugriff auf die Konfigurationsdatei des Hauptservers haben.“

Nginx

  • IPv6
  • Load Balancing
  • FastCGI* Unterstützung mit Caching
  • WebSockets
  • Umgang mit statischen Dateien, Indexdateien und automatischer Indizierung

Nginx hat kein Konfigurationssystem wie Apache, daher wird es, obwohl es viel effizienter und schneller ist, nicht häufig bei Retail-Hosting-Providern eingesetzt. Es glänzt nicht in shared Umgebungen im Gegensatz zu Apache.

Windows IIS

  • web.config
  • nur bei Windows Severn im Einsatz
  • Load Balancing und intelligentes Routing
  • gleichzeitige Unterstützung von ASP.NET und PHP auf demselben Server

 

PHP als Modul des Apache nutzt – wie andere Scriptsprachen auch (beispielsweise Perl oder ASP) – das CGI, um Anfragen an einen Webserver zu senden und das Ergebnis an den Client zurück zu schicken. Für jede Anfrage muss dabei ein neuer Prozess angelegt werden, der nach der abgeschlossenen Bearbeitung des Scripts wieder beendet wird. Das Problem dabei ist, dass das Starten und Initialisieren sehr viel länger dauert als das eigentliche Ausführen des Scripts – es entsteht also ein großer Overhead.

FastCGI kann man sich als große Endlos-Schleife vorstellen, die ständig auf Requests wartet. Der Prozess läuft also ständig und ist sofort einsatzbereit, wenn eine Anfrage an den Server ankommt. Die genaue Funktionsweise von FastCGI (unabhängig von PHP) ist bei Wikipedia beschrieben.