Apache ist ein kostenloser Open Source Webserver. Der Apache Webserver ist der populärste Webserver, der aktuell von rund 46 % aller Webseiten weltweit genutzt wird. Die erste Version wurde 1995 veröffentlicht. Entwickelt und verwaltet wird der Webserver von der Apache Software Foundation (ASF). Der vollständige Name lautet Apache HTTP Server.

Wie funktioniert der Apache Webserver?

Obwohl Apache als Webserver bezeichnet wird, handelt es sich nicht um einen physischen Server. Apache ist eine Software, die auf einem Server ausgeführt wird. Beim Apache-Webserver handelt es sich um eine plattformübergreifende Software, die sowohl auf Unix/Linux wie auch auf Windows Servern ausgeführt werden kann. Seine Aufgabe ist es, eine Verbindung zwischen einem physischen Server mit den gespeicherten Webseiten und den Browsern der Internetuser herzustellen.

Wenn ein User eine URL in seinen Webbrowser eingibt, sendet der Browser eine HTTP oder HTTPS Anforderung an den Server, auf dem die Webseite gespeichert ist. Der auf dem Server installierte Apacheserver verarbeitet die HTTP oder HTTPS Anforderung und gibt die angeforderten Webseiten zurück.

Multitasking und Multithreading

Ein Apacheserver kann mehrere HTTP-Anforderungen gleichzeitig verarbeiten. Dazu muss der Server auf mehreren „Threads“ ausgeführt werden. Ein Thread ist Teil eines Programms, das vom Hauptprogramm abzweigt und gleichzeitig ausgeführt wird, um eine bestimmte Aufgabe auszuführen. Der Apacheserver erstellt für jede HTTP-Anforderung einen neuen Thread. Jeder Thread verarbeitet die Anforderung eines Users und gibt die abgerufene Webseite. Auf diese Weise können Webseiten für mehrere Benutzer gleichzeitig bereitgestellt werden.

Programm- und Dateidienste

Neben dem Abruf von Webseiten kann der Apacheserver Benutzern das Herunterladen von Dateien ermöglichen. Dazu gehören Audiodateien, Filmdateien oder andere Dateien wie Word-Dokumente oder PDF-Dateien. Zudem ermöglichen serverseitige Skriptsprachen wie PHP, Perl, Python oder Ruby das Erstellen dynamischer Webseiten durch den Server. Um Anforderungen für dynamische Webseiten verarbeiten zu können, muss das entsprechende Modul installiert sein. Diese Module werden beispielsweise als smod_php, mod_python oder mod_perl bezeichnet.

Erweiterung mit Modulen

Für den Apacheserver stehen eine ganze Reihe Module zur Verfügung, mit denen der Funktionsumfang des Servers erweitert werden kann. Hierzu gehören beispielsweise eine Passwortauthentifizierung und digitale Zertifikate, anpassbare Fehlermeldungen, virtuelle Hosting-Funktionen, Proxy-Dienste, SSL und TLS oder eine GZIP-Komprimierung zur Beschleunigung der Ladezeiten von Webseiten und Dokumenten.

Mehr zum Thema:
Was ist ein Terminalserver

Apache für die Webseitenentwicklung

Der Apache HTTP Server steht als eigenständige Software oder zusammen mit anderen Programmen in einem Paket für Website-Entwickler zur Verfügung. Dieses als XAMPP bezeichnete Paket ist keine originäre Entwicklung der ASF, sondern wird von den Apache Friends zusammengestellt. XAMPP wird auf lokalen Computern installiert und für die Entwicklung von Webseiten genutzt.

Das Paket beinhaltet den Apacheserver, eine MariaDB Datenbank, die Skriptsprachen PHP, Perl und PEAR sowie zwei FTP-Programme. Wird die Skriptsprache Phyton benötigt, muss diese als eigenständiges Modul zusätzlich installiert werden. XAMPP ist für MacOS, Linux (Unix), Solaris und Windows Betriebssysteme erhältlich.

Apache im Vergleich mit anderen Webservern

Da der Apache eine threadbasierte Struktur verwendet, können bei Webseiten mit hohen Besucherzahlen Leistungsprobleme auftreten. Im Gegensatz zum Apacheserver nutzt der Nginx (ausgesprochen Engine X) Webserver eine ereignisgesteuerte Architektur. Das heißt, Nginx erstellt nicht jedes Mal einen neuen Prozess für jede einzelne Anforderung.

ApacheDer Server behandelt stattdessen alle eingehenden Anforderungen in einem einzigen Thread. Dieser sogenannte Masterprozess verwaltet mehrere Arbeitsprozesse, die die eigentliche Verarbeitung von Anforderungen durchführen. Das ereignisbasierte Modell von Nginx verteilt Benutzeranforderungen effizient auf sogenannte Worker-Prozesse. Dies ermöglicht eine wesentlich bessere Skalierbarkeit bei hohen Besucherzahlen.

Tomcat ist ein weiterer noch relativ junger Webserver, der ebenfalls von der ASF entwickelt wurde. Es handelt sich bei Tomcat um einen HTTP-Server, der jedoch speziell für Java-Apps entwickelt wurde. Tomcat kann verschiedene Java-Spezifikationen ausführen, zum Beispiel Java Servlet, JavaServer Pages (JSP), Java EL und WebSocket.

Der Apache Webserver ist Open Source und kostenlos – sowohl für die private wie auch die kommerzielle Nutzung. Der Server wird regelmäßig aktualisiert und bietet eine hohe Flexibilität durch die modulbasierte Struktur. Er ist einfach konfigurierbar und kann von unerfahrenen Nutzern problemlos eingerichtet werden. Ein weiterer Vorteil ist, dass der HTTP-Webserver plattformübergreifend auf unterschiedlichen Betriebssystemen eingesetzt werden kann. Nicht zuletzt steht im Hintergrund eine große Community, die eine schnell verfügbare Unterstützung bei Problemen bietet.

Julia Ullrich

Redakteurin bei Biteno GmbH
Julia ist Redakteurin und Lektorin für den Blog der Biteno GmbH. Sie schreibt vor allem über technische und betriebswirtschaftliche Themen - so daß Sie auch von Nicht-ITlern gut verstanden werden.

Letzte Artikel von Julia Ullrich (Alle anzeigen)