Apache HTTP Server Version 2.4

Apache > HTTP-Server > Dokumentation > Version 2.4

# Übersicht der neuen Funktionen im Apache HTTP Server 2.0

Dieses Dokument beschreibt einige der wichtigsten Änderungen des Apache HTTP Servers 2.0 gegenüber der Version 1.3.

### Siehe auch

- Upgrade von 1.3 auf 2.0

## Core-Erweiterungen

Unix-Threading
  Auf Unix-Systemen mit Unterstützung für POSIX-Threads, kann der Apache httpd jetzt in einem Multi-Process, Multi-Threaded Hybrid-Mode gestartet werden. Dies verbessert die Skalierfähigkeit für viele, jedoch nicht unbedingt alle Konfigurationen.
Neues Build-System
  Das Build-System wurde komplett auf der Basis von `autoconf` und `libtool` neu geschrieben. Dadurch wird das Konfigurationssystem des Apache httpd dem vieler anderer Packages ähnlicher.
Multi-Protokoll-Unterstützung
  Der Apache HTTP Server stellt jetzt die notwendigen Grundfunktionalitäten bereit, um mehrere Protokolle unterstützen und verarbeiten zu können. `mod_echo` wurde hierfür als Beispiel geschrieben.
Bessere Unterstützung von Nicht-Unix-Plattformen
  Der Apache HTTP Server 2.0 ist schneller und stabiler auf Nicht-Unix-Plattformen wie BeOS, OS/2 und Windows. Mit der Einführung von Plattform-spezifischen Multi-Processing Modulen (MPMs) und der Apache Portable Runtime (APR), sind diese Plattformen jetzt in ihrem nativen API implementiert, wodurch die Verwendung der häufig fehlerbehafteten und schlecht funktionierenden POSIX-Emulation-Layer vermieden wird.
Neues Apache-httpd API
  Das API für Module hat sich in 2.0 stark verändert. Die meisten der Sortierungs-/Prioritätsprobleme von Modulen bei 1.3 sollten nun verschwunden sein. In 2.0 wird hiervon vieles automatisch durchgeführt. Die Modulsortierung wird jetzt über einen pre-hook vorgenommen, um mehr Flexibilität zu bieten. Außerdem wurden neue API-Calls hinzugefügt, die zusätzliche Modulfähigkeiten zur Verfügung stellen, ohne den Kern des Apache HTTP Servers anpassen zu müssen.
IPv6-Unterstützung
  Auf Systemen, bei denen die zugrundeliegende Apache Portable Runtime-Bibliothek IPv6 unterstützt, bekommt der Apache httpd standarmäßig IPv6 Listening Sockets. Zusätzlich unterstützen die Konfigurationsanweisungen `Listen`, `NameVirtualHost` und `VirtualHost` numerische IPv6-Adressangaben (z.B., "`Listen [2001:db8::1]:8080`").
Filterung
  Apache-httpd-Module können jetzt als Filter entwickelt und zur Filterung des rein- und rausgehenden Datenstroms des Servers eingesetzt werden. Hierdurch kann beispielsweise die Ausgabe von CGI-Skripten durch den `INCLUDES`-Filter von `mod_include` bearbeitet werden und so Server-Side Include-Anweisungen ausgeführt werden. Das Modul `mod_ext_filter` erlaubt externen Programmen als Filter zu agieren, in der gleichen Weise wie CGI-Programme als Eingabe dienen können.
Mehrsprachige Fehlermeldungen
  Fehlermeldungen die an den Browser rausgehen, stehen jetzt als SSI-Dokumente in verschiedenen Sprachen zur Verfügung. Sie können bei Bedarf durch den Administrator angepasst werden, um ein einheitliches Design zu erreichen.
Vereinfachte Konfiguration
  Viele der verwirrenden Konfigurationsanweisungen wurden vereinfacht. Die oft für Verwirrung sorgenden `Port`- und `BindAddress`-Anweisungen wurden entfernt. Ausschließlich die `Listen`-Anweisung wird nun zum Setzen von IP-Addressen und Portnummern benutzt. Der Servername und die Portnummer, die für Weiterleitungen und zur Erkennung virtueller Server verwendet werden, werden über die `ServerName`-Anweisung konfiguriert.
Native Windows NT Unicode-Unterstützung
  Der Apache httpd 2.0 auf Windows NT benutzt jetzt utf-8 für alle Dateinamen-Kodierungen. Diese werden direkt auf das zugrundeliegende Unicode-Dateisystem abgebildet, wodurch Mehrsprach-Unterstützung für alle Windows NT-basierten Installationen, inklusive Windows 2000 und Windows XP, zur Verfügung gestellt wird. Diese Unterstützung ist nicht auf Windows 95, 98 oder ME verfügbar. Hier wird weiterhin die jeweils lokale Codepage des Rechners für den Zugriff auf das Dateisystem verwendet.
Bibliothek für reguläre Ausdrücke aktualisiert
  Der Apache httpd 2.0 enthält die "Perl Compatible Regular Expression Library" (PCRE). Bei der Auswertung aller regulären Ausdrücke wird nun die leistungsfähigere Syntax von Perl 5 verwendet.

## Modul-Erweiterungen

`mod_ssl`
  Neues Modul in Apache httpd 2.0. Dieses Modul ist ein Interface zu den von OpenSSL bereitgestellten SSL/TLS Verschlüsselungs-Protokollen.
`mod_dav`
  Neues Modul in Apache httpd 2.0. Dieses Modul implementiert die HTTP Distributed Authoring and Versioning (DAV) Spezifikation zur Erzeugung und Pflege von Web-Inhalten.
`mod_deflate`
  Neues Modul in Apache httpd 2.0. Dieses Modul erlaubt es Browsern, die dies unterstützen, eine Komprimierung des Inhaltes vor der Auslieferung anzufordern, um so Netzwerk-Bandbreite zu sparen.
`mod_auth_ldap`
  Neues Modul in Apache httpd 2.0.41. Diese Modul ermöglicht die Verwendung einer LDAP-Datenbank zur Speicherung von Berechtigungsdaten für die HTTP-Basic-Authentication. Ein Begleitmodul, `mod_ldap`, stellt einen Verbindungs-Pool und die Pufferung von Abfrageergebnissen zur Verfügung.
`mod_auth_digest`
  Zusätzliche Unterstützung für prozessübergreifendes Session-Caching mittels Shared-Memory.
`mod_charset_lite`
  Neues Modul in Apache httpd 2.0. Dieses experimentelle Modul erlaubt Zeichensatz-Übersetzungen oder -Umschlüsselung.
`mod_file_cache`
  Neues Modul in Apache httpd 2.0. Dieses Modul beinhaltet die Funktionalität von `mod_mmap_static` aus Version 1.3 des Apache HTTP Server zuzüglich einiger weiterer Caching-Funktionen.
`mod_headers`
  Dieses Modul ist in Apache httpd 2.0 deutlich flexibler geworden. Es kann jetzt die von `mod_proxy` genutzten Request-Header manipulieren und es ist möglich Response-Header auf Basis von definierten Bedingungen zu verändern.
`mod_proxy`
  Das Proxy Modul wurde komplett neu geschrieben um die Möglichkeiten der neuen Filter-Funktionalität auszuschöpfen und um einen zuverlässigen Proxy zu haben, der den HTTP/1.1-Spezifikationen entspricht. Neue `<Proxy>` -Konfigurationsabschnitte bieten eine besser lesbare (und intern schnellere) Kontrolle der vermittelten Seiten. Die überladenen `<Directory "proxy:...">`-Konfigurationen werden nicht mehr unterstützt. Das Modul ist nun in mehrere Module unterteilt, die jeweils ein bestimmtes Übertragungsprotokoll unterstützen, wie `proxy_connect`, `proxy_ftp` und `proxy_http`.
`mod_negotiation`
  Die neue Konfigurationsanweisung `ForceLanguagePriority` kann benutzt werden, um sicherzustellen, dass ein Client auf jeden Fall ein einzelnes Dokument, anstatt einer NOT ACCEPTABLE- oder MULTIPLE CHOICES-Antwort, bekommt. Zusätzlich wurden die Negotiation- und Multiview-Algorithmen angepasst um einheitlichere Ergebnisse zu liefern. Außerdem wird ein neues Type-Map-Format bereitgestellt, das Dokumenteninhalte direkt enthalten kann.
`mod_autoindex`
  Automatisch erzeugte Verzeichnisindizes können zur besseren Übersichtlichkeit durch HTML-Tabellen dargestellt werden. Genauere Sortierungen, wie Sortierung nach Versionsnummer und Wildcard-Filterung des Verzeichnisindizes werden unterstützt.
`mod_include`
  Neue Anweisungen erlauben es, die Standard Start- und Endtags von SSI-Elementen zu ändern. Zudem können die Default-Formate für Fehlermeldungen und Zeitangaben nun ebenfalls in der Serverkonfiguration vorgenommen werden. Auf die Ergebnisse der Auswertung und Gruppierung von regulären Ausdrücken (jetzt auf Basis der Perl-Syntax für reguläre Ausdrücke) kann über die `mod_include` Variablen `$0` bis `$9` zugegriffen werden.
`mod_auth_dbm`
  DBM-ähnliche Datenbanken werden jetzt durch die Konfigurationsaweisung `AuthDBMType` unterstützt.