CHANGES in Version 1.3.19.1a * mod_gzip_can_negotiate Yes This new httpd.conf directive is probably the most important new feature. If 'mod_gzip_can_negotiate' command is set to 'Yes' then mod_gzip will essentially 'take over' some of the duties of mod_negotiate and will automatically check for static pre-existing compressed versions of requested file(s). In other words... if the user requests 'filename.html' and there happens to already be a pre-compressed version of that page named 'filename.html.gz' then mod_gzip will immediately return the pre-compressed version rather than perform a dynamic compression of the file. The delivery of the pre-compressed version of the file is still subject to the same 'rules' that govern the delivery of compressed data to a user-agent. The user-agent must have indicated it is capable of receiving compressed content and the file/mime type itself must be one of the valid mod_gzip 'inclusion' items specified using the normal mod_gzip_item_include/exclude statements. The 'mod_negotiate' module for Apache does not currently have the 'smarts' that mod_gzip does with regards to evaluating user-agents and inbound request headers and while it is (sometimes) able to 'negotiate' for static compressed versions of files it does not have anything comparable to the safety checks or the include/exclude item filtering logic that mod_gzip has. It is much 'safer' to set the 'mod_gzip_can_negotiate' flag to 'Yes' and let mod_gzip check for ( and deliver ) static compressed versions of files than it is to let mod_negotiate make the same decisions. If mod_gzip finds a pre-compressed version of a requested file and all the filtering and safety checks allow that static compressed version to be delivered back to the client then the mod_gzip 'result' string in the access.log file will be... mod_gzip: DECLINED:STATIC_GZ_FOUND In this case... 'DECLINED' does not mean that no compressed data was returned. It means that mod_gzip has screened the request according to its filtering logic and has concluded that is is OK for Apache itself to flow the pre-compressed version back to the user-agent. 'DECLINED' means it was not 'dynamically' compressed and 'STATIC_GZ_FOUND' means a pre-compressed version was returned to the user-agent. In the cases where a user-agent has specifically requested a filename.html.gz file then the result string will be... mod_gzip: DECLINED:FEXT_GZ Which means that mod_gzip simply 'passed' on the transaction. * 'mod_gzip_command_version' directive has returned. The mod_gzip 'command' interface is back but now it has a different 'twist'. For security reasons you must now specify yourself what the 'command' is for certain functions like 'Get version'. This way... only you will know what the command is so you can test your own site(s). The command(s) can be different strings for each Virtual Host, if desired. To enable mod_gzip to do the 'version' command just add this to your httpd.conf file... mod_gzip_command_version mod_gzip_show_version The 'mod_gzip_show_version' string can be anything you like and this is the 'command' that you can now send to your server to have it respond with mod_gzip version information as an HTML response page. Example: Using the above command definition all you have to do to get the Server to provide the mod_gzip version information ( and whether or not mod_gzip is enabled for that location ) is type this into your browser... http://www.your_server_name.com/mod_gzip_show_version If you have added the 'mod_gzip_command_version' config parameter to 'your_server_name' httpd.conf file then you will not get a '404 File not found'... you will get this... mod_gzip is available on this Server... mod_gzip_version = 1.3.19.1a mod_gzip_on = Yes If mod_gzip is installed but is not 'on' for whatever location is requested ( based on Virtual Server name ) then this will also be indicated with 'mod_gzip_on = No' in the response. This is a good way to tell 3 things... 1. Is mod_gzip installed and functioning correctly. 2. What version is it? 3. Is mod_gzip turned 'on' for the requested 'location' (Server)? The command interface will check the entire URI for the command pickup string so, if you desire, you can do this as well... http://www.your_server_name.com/dummypage.html?mod_gzip_show_version The command string does not have to be part of the URI filename and can be included as a query parm following any filename. You will not receive the file... you will get the mod_gzip command result page instead. This might work better for some who want to add the 'command' link to existing pages since, if mod_gzip is not installed on 'your_server_name', Apache will still try to locate and return the page called 'dummypage.html' which might be better for some scenarios than a '404 Not found' response. * New 'uri' include/exclude record type added... The existing 'type' names for inclusion/exclusion should be adequate for just about anything but one or two scenarios involving complicated uses of 'ScriptAlias' have surfaced which could probably benefit from doing a keyword lookup on the URI itself and not the filename or mime type. To that end there is now a new 'type' name that can used... mod_gzip_item_include uri .*foo.* This will cause all requests for URIs with the characters 'foo' in it to be 'included'. NOTE: You can use either 'uri' or 'url' as the record type name. Using the 'file' pickup type is still the best ( and most accurate ) thing to do so using the new 'uri' pickup is 'swim at your own risk'. It should work fine if used properly. * In-memory compression option is back on. The 'in-memory' compression option which was temporarily disabled in the prior version is now back on. The 'mod_gzip_maximum_inmem_size xxxx' config parameter is what sets the maximum size of a source object ( in bytes ) that can/will be compressed completely in memory. If the 'mod_gzip_maximum_inmem_size' value is either ZERO or not specified then the 'in-memory' compression option is effectively disabled and will not be used. Due to one remaining problem with some OS'es being unable to use allocations greater than 64k the maximum value is limited to 60,000 bytes ( allowing for some overspill ). 60,000 bytes is perfectly adequate for most responses. Anything larger than that probably SHOULD use a workfile. Next version will allow any size to be used but be forewarned that testing has already shown that on a busy Server anything over 60k should probably not use the 'in-memory' option anyway since a busy Server needs all the memory it can get spread across hundreds of transactions per second to keep the performance up. * mod_gzip_item_include/exclude description updated. Used to report... ARG1=[mime,file,handler,agent] Now correctly reports... ARG1=[mime,file,uri,handler,reqheader,rspheader] END OF FILE