mod_gzip - serving compressed content by the Apache webserver - Page 10
Author: Michael Schröpl
Version history and change log for mod_gzip
Version numbers for mod_gzip are selected according to the version numbers of the Apache servers that has been up-to-date when the mod_gzip version has been published - for this Apache version at least the new mod_gzip version has been tested.
The additional fourth component of the version number, consisting of a number and a letter, is meant to explain which type of change the new release contains:
- A change of only the letter describes a 'minor release' that normally contains only some bug fix; the existing Apache configuration should remain usable.
- A change of the number describes a 'major release' that normally may contain changes of functionality (especially new or modified configuration directives) so that adapting your Apache configuration might be necessary.
Compatability between Apache 1.3.x and mod_gzip 1.3.y is granted in general: The Apache 1.3 API doesn't change any more, mod_gzip would even work together with very old Apache 1.3 versions (the use of which would definitely be deprecated today).
One of the earliest Apache 1.3 versions introduced some internal function for regular expression evaluation; this function is used by mod_gzip (for evaluating the filter rules), therefore mod_gzip would not work together with Apache 1.2.x (if anyone would care about this ...).
- bug fix: In previous versions mod_gzip had a problem handling POST requests containing a body longer than 4 rsp. 8 kByte.
Now mod_gzip declines to handle these requests, so that their content will be served in uncompressed form.
- bug fix: In previous versions mod_gzip had a problem handling HTTP headers longer than 4 kB (e. g. when using very long contents for HTTP cookies). This has been fixed.
- Reduction of the amount of Vary: HTTP headers being generated since version 126.96.36.199a, re-improving the cacheability of uncompressed content by proxy caches.
- Additionally sending a Vary: * HTTP header when a mod_gzip_min_http directive has been used, to indicate a type of negotiation other than for HTTP header names
- New directive: mod_gzip_update_static.
- The ancient directives
- mod_gzip_post_on and
This may cause configurations still containing these ineffective directives to no longer load now with the new version; simply remove these old directives, as they didn't have any effect at all even in version 188.8.131.52a.
- Patch for the Netware platform: Use sockets like in the Win32 variant - without this modification mod_gzip wasn't usable on Netware (supplied by GÃ¼nther Knauf).
- Sending the Vary: HTTP header to mark the output as negotiation result for proxy servers.
- Splitting the source code into three files:
- mod_gzip.c: module functions and embedding into the Apache server
- mod_gzip_compress.c: the gzip compression function by Kevin Kiley
- mod_gzip_debug.c: pure diagnostic output functions (required only if the variable MOD_GZIP_DEBUG1 has been defined in the preprocessor).
- bug fix: If the result of a compression is larger than the original file then mod_gzip forgot to remove the created temporary file from its work directory. During time a lot of files gathered there (which by the way were a sign that the mod_gzip configuration wasn't selected perfectly, because mod_gzip could have saved the effort to compress all these files).
- New directive: mod_gzip_handle_methods.
- New directive: mod_gzip_static_suffix
- When looking for a statically precompressed version of a file mod_gzip now will automatically detect whether this version is older than the uncompressed original file.
- When looking for a statically precompressed version of a file mod_gzip
now will automatically detect an access to a directory - the previous
version would have served the content of a file with the name of the
directory plus the extension .gz, which at least seems to be a questionable idea.
Now mod_gzip will no longer look for a statically precompressed file in case of an access to a directory but always try to dynamically compress the content (if it is entitled to do so).