Ü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.
- 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.
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.