Versions-Historie und Änderungsprotokoll von mod_gzip
Versionsnummern von mod_gzip orientieren sich an den Versionsnummern desjenigen Apache-Servers, welcher zum Zeitpunkt des Erscheinens einer mod_gzip-Version gerade aktuell war - wenigstens mit dieser Apache-Version ist die neue mod_gzip-Version getestet worden.
Die zusätzliche vierte Komponente der Versionsnummer, bestehend aus einer Zahl und einem Buchstaben, soll beschreiben, welche Art von Änderung das neue Release enthält:
- Eine Änderung nur des Buchstabens beschreibt eine 'kleine Version', die üblicherweise nur eine Fehlerkorrektur enthält; die bestehende Apache-Konfiguration sollte weiterhin verwendbar bleiben.
- Eine Änderung der Zahl beschreibt eine 'große Version', die üblicherweise auch geänderte Funktionalität (insbesondere neue oder geänderte Konfigurations-Direktiven) enthält, so daß eine Anpassung der Apache-Konfiguration erforderlich sein kann.
Die Kompatibilität zwischen Apache 1.3.x und mod_gzip 1.3.y ist generell gegeben: Die Apache-1.3-API ändert sich nicht mehr, mod_gzip würde daher auch mit sehr alten Apache-1.3-Versionen funktionieren (von deren Verwendung heute dringend abzuraten wäre).
In einer der frühesten dieser Apache-1.3-Versionen wurde eine interne Funktion zur Auswertung regulärer Ausdrücke neu eingeführt; diese Funktion wird von mod_gzip verwendet (bei der Auswertung der Filterregeln), deshalb funktioniert mod_gzip nicht zusammen mit Apache 1.2.x (falls das irgend jemanden interessieren sollte ...).
Neu in Version 1.3.26.1a
- bug fix: In vorherigen Versionen hatte mod_gzip ein Problem bei der Verarbeitung von POST-Requests mit einem Body länger als 4 bzw. 8 kByte.
Nun wird die Verarbeitung solcher Anforderungen durch mod_gzip abgelehnt und ihr Inhalt folglich unkomprimiert ausgeliefert. - bug fix: In vorherigen Versionen hatte mod_gzip ein Problem bei der Verarbeitung von HTTP-Header-Zeilen mit einer Länge von mehr als 4 kByte (z. B. bei der Verwendung sehr langer Inhalte von HTTP-Cookies). Dieser Fehler wurde behoben.
- Reduzierung der Menge der seit Version 1.3.19.2a erzeugten
Vary:
-HTTP-Header, und dadurch wieder erhöhte Zwischenspeicherbarkeit unkomprimierter Antwortpakete durch Proxy-Caches gegenüber der vorherigen Version. - Zusätzliches Senden eines HTTP-Headers
Vary: *
, falls einemod_gzip_min_http
-Direktive verwendet wurde, um eine andere Art der Verhandlung als über HTTP-Header-Namen anzuzeigen. - Neue Direktive:
mod_gzip_update_static
. - Die längst nicht mehr unterstützten Direktiven
mod_gzip_add_vinfo
,mod_gzip_do_static_files
,mod_gzip_do_cgi
,mod_gzip_post_on
undmod_gzip_verbose_debug
Dies kann dazu führen, daß sich Konfigurationen, welche diese wirkungslosen Direktiven immer noch enthalten, mit der neuen Version nun nicht mehr laden lassen; diese alten Direktiven können ersatzlos entfernt werden, da sie bereits in Version 1.3.19.1a keine Wirkung mehr hatten.. - Patch für die Netware-Plattform: Verwendung von sockets analog zu Win32 - ohne diese Änderung war mod_gzip unter Netware nicht verwendbar (beigesteuert von Günther Knauf).
Neu in Version 1.3.19.2a
- Senden des HTTP-Headers
Vary:
zur Markierung der Ausgabe als Verhandlungsergebnis für Proxy-Server. - Zerlegung des Quelltextes in drei Dateien:
mod_gzip.c
: Modul-Funktionen und Einbindung in den Apache-Servermod_gzip_compress.c
: Die gzip-Komprimierungs-Funktion von Kevin Kileymod_gzip_debug.c
: Reine Diagnose-Ausgabefunktionen (die nur benötigt werden, falls die VariableMOD_GZIP_DEBUG1
im Präprozessor definiert ist).
- bug fix: Falls das Ergebnis einer Komprimierung größer als die Original-Datei wurde, vergaß mod_gzip, die dabei erzeugte Datei aus seinem Arbeitsverzeichnis zu löschen. Mit der Zeit sammelten sich dort zahlreiche Dateien an (welche nebenbei bemerkt ein Zeichen dafür waren, daß die mod_gzip-Regelkonfiguration nicht perfekt gewählt war, denn alle diese Komprimierungsversuche hätte man sich sparen können).
- Neue Direktive:
mod_gzip_handle_methods
. - Neue Direktive:
mod_gzip_static_suffix
- Bei der Suche nach einer statisch vorkomprimierten Version einer Datei erkennt mod_gzip nun automatisch, ob diese Version älter ist als die unkomprimierte Original-Datei.
- Bei der Suche nach einer statisch vorkomprimierten Version erkennt mod_gzip nun den Zugriff auf ein Verzeichnis - die vorherige Version hatte den Inhalt einer Datei mit dem Namen des Verzeichnisses plus der Endung
.gz
ausgegeben, was zumindest eine fragwürdige Idee war.
Jetzt sucht mod_gzip bei einem Zugriff auf ein Verzeichnis nicht mehr nach einer statisch komprimierten Datei, sondern versucht immer, das Ergebnis dynamisch zu komprimieren (falls es darf).
(Michael Schröpl, 2003-03-21)