Getting Started with ZipEnable

ZipEnable is a tool for the deployment and configuration of Internet Information Services (IIS) 6.0's built-in compression feature on Windows Server 2003 systems. When installed on an IIS 6.0 server, ZipEnable provides a graphical interface to control IIS metabase settings governing its built-in compression functionality. Over and above the functionality provided by IIS 6.0 native compression, ZipEnable offers:

  • graphical access to the full range of IIS compression settings
  • quick deployment of basic settings via an easy-to-use configuration wizard
  • granular control of compression at the site, directory, and file level
  • optional browser-specific compression exclusions by file type

Installation and Activation

Installing Zipenable

Installing ZipEnable

ZipEnable uses a single installer for both 32-bit and 64-bit installations. The installer determines which type of operating system is in use before installing the appropriate files. In addition, the installer is capable of installing any runtime packages required by ZipEnable.

Depending on the current configuration of your IIS server(s), there are runtime prerequisites that might be missing or out of date when ZipEnable is installed. The two most common are:

  • .Net Framework 2.0 (or later)
  • Visual C++ 2005 Runtime

When the ZipEnable installer detects that a runtime prerequisite is missing or out of date, it asks the user if an outbound Internet connection is available. (As a security best practice many production Web servers are not permitted to initiate HTTP connections.) If a connection is available, then the required files will be downloaded and installed automatically.

If an outbound connection is not available, then the installer will provide instructions for downloading the necessary files from another computer. The installer can either be left open in the meantime or else cancelled and rerun once the files are available locally. Once the required files are present on the target computer, and the installer is resumed (or rerun), it will recognize the files and install them as needed.

Major Components

ZipEnable consists of the following major program components:

  • A graphical user interface (ZipEnable.exe). The ZipEnable Settings Manager is the core of ZipEnable. It provides granular control of all of the native compression settings in the IIS 6.0 metabase, as well as access to advanced compression settings not provided by IIS.
  • A configuration wizard (ZipEnableWizard.exe). The ZipEnable Wizard supplements the Settings Manager by guiding users through the process of setting up compression.
  • An ISAPI wildcard extension (ZEIsapi.dll). The component, installed at the global level in IIS, implements ZipEnable's non-native features: Browser Exclusion and CPU Rollback.
    Note: This component is not installed until and unless one of the non-native features is enabled.
  • A command line interface (ZECmd.exe). This component provides a simple syntax for programmatically configuring granular compression settings and ZipEnable browser exclusions.
Trial and Activation

Trial and Activation

When first installed ZipEnable will be in trial mode. The trial period lasts for 30 days, during which time the following features are disabled:

  • The Site Level Properties tab in the Settings Manager
  • The Configuration Wizard
  • The Command Line Interface.

At the end of the trial period, ZipEnable will cease functioning. Your IIS server will continue to function normally, and any changes you made to the IIS 6 native compression by means of ZipEnable will persist. You will not however be able to configure those settings further using ZipEnable. Should you decide to uninstall ZipEnable, you will given the option of restoring your compression settings to what they were when ZipEnable was installed.

ZipEnable may be activated at any time during the trial period or after that period has ended. Activation always requires the prior purchase of a ZipEnable license from www.port80software.com, or the purchase of an additional activation if you already own a ZipEnable license and are seeking to activate an additional server.

After purchasing a license (or a new activation for an existing license) there are two options for completing the activation: If your IIS server can initiate outbound SSL (HTTPS) connections, you can activate online. If your server lacks an outbound secure connection, you can use the email-based activation alternative. Both activation options are available on the activation dialog that comes up whenever the ZipEnable Settings Manager is launched in trial mode.

Once ZipEnable has been activated, you will have access to the features that were disabled during the trial period.

System Requirements

System Requirements

The System Requirements for ZipEnable 4 are as follows:

  • Server 2003 x86 (32-bit) or x64 (64-bit) with Service Pack 2
  • .Net Framework 2.0 (or later)
  • Visual C++ 2005 SP1 Runtime

Note: IIS 6.0 should be in its default isolation mode (Worker Process Isolation Mode) not in IIS 5.0 isolation (backwards compatibility) mode.


Getting Started

Getting Started

This section provides a brief introduction to the basic configuration options you have when setting up compression, as well as the standard technique for validating that compression is working as expected. It also shows how to launch each of ZipEnable's configuration tools and points the way to more detailed coverage of those tools elsewhere in the documentation.

Basic Configuration

Basic Configuration Options for Compression

Although ZipEnable affords several different ways to configure compression in IIS, the basic configuration options you will have are the same regardless of the configuration method you choose. In general, when configuring compression your major decisions will be:

  • Whether to compress static content only, dynamic content only, or both static and dynamic content.
  • Which file types to compress.
  • Whether to apply compression settings globally or granularly (that is, different settings for different sites, directories, or files).
  • Whether to exclude certain browsers from receiving compressed versions of file types that would normally be compressed.
Validating Compression

Validating that Compression is Working

However you choose to configure compression settings in IIS, you will need to be able to validate that the files you expect to be compressed, are being compressed. To do that, you will need to be able to examine the HTTP headers that are returned by the server when you request a page in a browser. There are a variety of convenient (and free) tools that let you do this, such as the Firefox add-ons HttpLiveHeaders and Firebug, as well as the debugging proxy Fiddler, which can be used with Internet Explorer or indeed any other Web browser.

No matter which tool you use to validate compression, what you are looking for in the 200 OK responses from the server are the following HTTP headers, which indicate that compression is working as expected:

Content-Encoding: gzip

Vary: Accept-Encoding

Note that the value of the Content-Encoding header might also be "deflate" rather than "gzip". Also realize that each file that makes up a page (including dependencies such as JavaScript and CSS files) can have different results, depending on your compression settings, and so the HTTP headers for each should be examined separately. For more guidance on evaluating ZipEnable (or any compression solution) see our online Evaluation Guide.

Conifguring Compression

Configuring Compression with ZipEnable

ZipEnable provides three ways to configure compression settings: the Settings Manager (the main ZipEnable GUI), the Configuration Wizard, and the Command Line Interface. A brief introduction to each follows.

The Settings Manager

The ZipEnable Settings Manager will launch automatically following a successful installation of ZipEnable. It can also be launched at any time using either the shortcut in the Port80/ZipEnable program group in the Windows Start Menu, or simply by double-clicking on the file ZipEnable.exe in the ZipEnable installation directory (by default C:\Program Files\Port80\ZipEnable). Here is what the Settings Manager looks like when it first appears:

ZipEnable Settings Manager

On the left side of the Global Properties tab are the controls for configuring static and dynamic compression at a global level. For more information on using these controls, see Global Properties. On the right side of that same tab are a series of quick-launch buttons that bring up specific tabs in the Advanced Settings dialog. For detailed descriptions of the functionality of each of these tabs, see Advanced Settings. The Site Level Properties tab controls compression at the site, directory and file level. For more information about configuring these settings see Site Level Properties.

The Configuration Wizard

The ZipEnable Configuration Wizard can be launched from within the Settings Manager in one of two ways: by choosing "Run Configuration Wizard" from the File menu, or by clicking "Run Wizard" on the Global Properties dialog:

The Wizard provides quick and easy access to several of the most commonly-used compression settings. See the Configuration Wizard section for a detailed description of the settings available in the Wizard.

The Command Line Interface

Lastly, ZipEnable's Command Line Interface can be run by calling the program ZECmd.exe from a Windows command shell (cmd.exe), batch file (*.bat) or any process capable of launching console mode programs. ZECmd.exe can be found in the ZipEnable installation directory. For the complete syntax of zecmd.exe commands, see the Command Line Interface section, or simply type ZECmd.exe -? on the command line.

Notes: When ZipEnable is in trial mode only the Global Properties tab of the Settings Manager can be used to change compression settings. When first installed, ZipEnable will reflect the current compression settings in your IIS metabase. In the typical case of default IIS settings, both static and dynamic compression will be disabled--globally as well as for all individual sites, folders and files in IIS. If however compression was previously configured in IIS, ZipEnable will show those configuration changes when first launched.


Configuration Wizard

Configuration Wizard

The ZipEnable Configuration Wizard is designed to quickly take you through the process of configuring basic compression options such as: enabling static and dynamic compression on a per-site basis, setting compression levels, and specifying which file types to compress.

The first Configuration Wizard screen helps you configure compression of static content.

Screenshot

To compress responses to requests for static content, choose "Yes" from the drop-down list, otherwise choose "No."

Choose the desired level of compression for static content. Higher compression levels generally result in smaller compressed files but with higher CPU and memory usage. Lower compression levels produce slightly larger compressed files, but with lower overall impact on CPU and memory resources. Since static file types are compressed once and then cached for reuse until the file changes or expires, it is advisable to choose a relatively high compression level for files of this type.

You can also specify the file extensions that will be compressed then cached. IIS 6.0 will only compress static files that have one of the file extensions shown here. To configure the file extension list, click on the "Configure" button. The Compression File Extensions dialog will appear:

Screenshot

To enable static compression for files with a given extension, click on the desired file extension, then click on the "Supported" column. A drop-down list will appear. Choose "Yes" from the list to enable static compression for the file extension or "No" to disable it. If a file extension that you would like to enable does not appear in the list, click the "Add" button, enter the desired extension in the pop-up dialog, then click "OK.". When all changes are complete on the file extensions dialog, click "OK" to accept the changes and dismiss the dialog. (Click "Cancel" to dismiss the dialog without accepting any changes.)

Returning to the main Wizard screen, the selected virtual servers (Web sites) in the "Virtual Servers" list will be enabled to compress static content. To select multiple virtual servers, hold down the "Ctrl" button while clicking on the desired virtual server names.

Click "Next" to move to the next screen of the Configuration Wizard, which helps you configure compression of dynamic content:

Screenshot

To compress responses to requests for dynamic content, choose "Yes" from the drop-down list, otherwise choose "No."

Choose the desired level of compression for dynamic content. The contents of a dynamic file is assumed to change more frequently than the file itself. Such files therefore cannot be compressed once and the cached in their compressed form. Instead they must be recompressed each time. Because of this it is advisable to choose a relatively low level of compression for files of this type, at least until you are certain that the server has sufficient spare CPU resources to support more a aggressive compression level.

To enable or disable dynamic compression for specific file extensions, click on the "Configure" button. The Compression File Extensions dialog will appear:

Screenshot

To enable dynamic compression for files with a given extension, click on the desired file extension, then click on the "Supported" column. A drop-down list will appear. Choose "Yes" from the list to enable dynamic compression for the file extension or "No" to disable it. If a file extension that you would like to enable does not appear in the list, click the "Add" button, enter the desired extension in the pop-up dialog, then click "OK.". When all changes are complete on the file extensions dialog, click "OK" to accept the changes and dismiss the dialog. (Click "Cancel" to dismiss the dialog without accepting any changes.)

Returning to the main Wizard screen, you can again (as with static compression) select the virtual servers (Web sites) for which dynamic compression should be enabled. To select multiple virtual servers, hold down the "Ctrl" button while clicking on the desired virtual server names.

Click "Next" to save all changes made with the Configuration Wizard and exit.


Global Properties

From the Global Properties tab you can access all of the controls that are used to configure global compression properties such as which compression schemes to enable, which file types to compress, and what compression level to use. The global settings are divided into two sets of controls: one for static compression and one for dynamic compression.

Static Compression Settings

Static Compression Settings

To direct IIS 6.0 to compress responses to requests for static content, check the box labeled "Compress Static Content."

Screenshot

To further configure IIS 6.0 compression for static content, click on the "Configure" button in the "Static Compression Settings" box to bring up the Configure Static Compression Settings dialog.

Screenshot

Two compression schemes are available for static content: gzip and deflate. Each scheme is represented here by its own tab. For static content compression to work, at least one of these schemes must be enabled. Check the "Enable" checkbox of the compression scheme you wish to use for static content. If you would rather let IIS negotiate the best choice of compression scheme with each browser, check both boxes.

The "Level" slider control allows you to set the level of compression that is used by each compression scheme when compressing static files. This represents a trade-off of computing resources for size reduction: The higher the compression level, the smaller the resulting file will be, but also the more CPU time will be required to compress it. Since static files are only compressed once (when first requested) and then cached for all subsequent requests, it is normally advisable to use a relatively high compression level for such files.

Each compression scheme has a list of file extensions associated with it, that control which file types can be compressed with that scheme. To configure the static file types to be compressed with a given scheme, click the "Configure" button to bring up the Compression File Extension Settings dialog.

Screenshot

The static file types that will be compressed by each compression scheme are represented by a list of file extensions. To add a file extension to the list of static file types to compress click on the "Add" button, enter the desired extension in the pop-up dialog, and then click "OK". To edit an extension in the list highlight the extension, click "Edit", modify the extension in the pop-up dialog, and then click "OK". To delete an extension from the list highlight it and click "Delete". When all changes to the list are complete, click "OK" to accept the changes and dismiss the dialog. Click "Cancel" to discard all changes and dismiss the dialog.

When all changes on the Configure Static Compression Settings dialog are complete, click "Apply" to accept the changes or "OK" to accept the changes and dismiss the dialog. Click "Cancel" to dismiss the dialog without saving any changes.

Dynamic Compression Settings

Dynamic Compression Settings

To direct IIS 6.0 to compress responses to requests for dynamic content, check the box labeled "Compress Dynamic Content."

Screenshot

To further configure IIS 6.0 compression for dynamic content, click on the "Configure" button in the "Dynamic Compression Settings" box to bring up the Configure Dynamic Compression Settings dialog.

Screenshot

As with static compression, two compression schemes are available for dynamic content: gzip and deflate. Each scheme is represented here by its own tab. For dynamic content compression to work, at least one of these schemes must be enabled. Check the "Enable" checkbox of the compression scheme you wish to use for dynamic content. If you would rather let IIS negotiate the best choice of compression scheme with each browser, check both boxes.

The "Level" slider control allows you to set the level of compression that is used by each compression scheme when compressing the output of dynamic files. This represents a trade-off of computing resources for size reduction: The higher the compression level, the smaller the resulting file will be, but also the more CPU time will be required to compress it. Since dynamic files are not cached but must instead be compressed afresh each time they are requested, it is normally advisable to use a relatively low compression level for such files. This is done in order to avoid excessive CPU utilization, which can be counter-productive when the goal of compression is to accelerate the delivery of Web to end users.

Each compression scheme has a list of file extensions associated with it, that control which file types can be compressed with that scheme. To configure the dynamic file types to be compressed with a given scheme, click the "Configure" button to bring up the Compression File Extension Settings dialog.

Screenshot

The dynamic file types that will be compressed by each compression scheme are represented by a list of file extensions. To add a file extension to the list of dynamic file types to compress click on the "Add" button, enter the desired extension in the pop-up dialog, and then click "OK". To edit an extension in the list highlight the extension, click "Edit", modify the extension in the pop-up dialog, and then click "OK". To delete an extension from the list highlight it and click "Delete". When all changes to the list are complete, click "OK" to accept the changes and dismiss the dialog. Click "Cancel" to discard all changes and dismiss the dialog.

When all changes on the Configure Dynamic Compression Settings dialog are complete, click "Apply" to accept the changes or "OK" to accept the changes and dismiss the dialog. Click "Cancel" to dismiss the dialog without saving any changes.

Site Level Properties

Site Level Properties

This tab allows you to enable and disable static and dynamic compression at the site level, as well as on any file or directory within a site.

Screenshot

To enable or disable compression for a given site, first select that site from the Virtual Server List (the left pane of the Site Level Properties tab). Once the site is selected, there are two ways to toggle its static and dynamic compression settings:

  1. Click into the Static or Dynamic column for the site. A drop-down menu will appear. Choose "On" to enable compression or "Off" to disable compression. To deactivate the drop-down menu, click anywhere else on the Virtual Server List, or simply press Return.
  2. Use the "s" key to toggle static compression for the site; use the "d" key to toggle dynamic compression.
Screenshot

When you choose a site in the Virtual Server list, the file and directory structure for that site appears in the right pane of the Site Level Properties tab. The "Static" and "Dynamic" columns display whether or not each node (file or directory) in tree is set to allow that type of compression.

To enable or disable compression for an individual file or directory within a site, use the same procedure as with the site itself: First, select the file or directory, then toggle the appropriate compression setting by either clicking into the Static or Dynamic column to activate the drop-down menu, or by using the "s" or "d" keyboard shortcuts.

Screenshot
Persistent Overrides Option

Persistent Overrides Option

The Persistent Overrides option allows you to alter the default inheritance relationship between parent and child nodes in the Site Level Properties tree view. By default, when the compression status is changed for any site, or any directory within a site, all of the files and directories falling under that node will inherit its new compression status. With the Persistent Overrides option turned on, a file or directory that has been given its own compression setting for static or dynamic compression will maintain that setting, regardless of any changes made to its parent.

Note: An asterisk (*) next to the "Yes" or "No" in the Static or Dynamic column means that this particular setting is being inherited from the parent node.

To enable Persistent Overrides, use the menu option Settings / Site Level / Enable Persistent Overrides.

Persistent Overrides Option

Advanced Settings

ZipEnable's advanced configuration settings are arranged in the following groups: Browser Compatibility, CPU Roll-off, Cache Settings, Compression Exclusion, Compression Schemes, and Miscellaneous.

Each of these advanced settings groups is represented by its own tab on the Advanced Settings dialog. There are two ways to access the tab for an advanced settings group: by pressing the Configure button next to the name of the desired group on the Advanced Settings section of the Global Properties tab; or by selecting the desired group from the Settings / Advanced menu option.

Advanced Settings - Browser Compatibility

When requesting any resource (URL), browsers (and other user agents) are supposed to send the HTTP Accept-Encoding header if and only if they can accept an encoded (compressed) version of that resource. ZipEnable, like any standards compliant compression tool, will always check for this header in each request, before issuing a compressed response.

In practice, however, most browsers will err on the side of asking for compressed content whenever possible. They also have limited prior information about the content type of the resource before requesting it. These factors mean that certain browsers will occasionally mishandle compressed responses of certain types, even when they have explicitly requested that the content be compressed.

To deal with this scenario, ZipEnable provides a mechanism for excluding any combination of browser and file type from compression. The browsers are represented by user agent strings and the file types by their associated file extensions.

Screenshot

The controls available on this tab and their functions are as follows:

The Enable Browser Exclusions checkbox enables the Browser Compatibility features. In addition, this will install the ZipEnable ISAPI wildcard extension (zeisapi.dll) at the global (Web Sites) level in IIS, if it has not yet been installed. (To avoid unnecessary impact on performance, the wildcard extension is only installed as needed by ZipEnable.)

The User Agent Strings listbox is in effect a list of possible browsers that have compression exclusions for at least one file type. More specifically, ZipEnable will look in the HTTP User-Agent header of each request received by IIS for user agent strings that match any of the patterns in this list. The strings in the list can be exact matches for the targeted browsers' user agent strings but, more often, they will be partial matches with wildcards.

To modify any user agent string in the list, select it and click Edit or Remove. To add item, click Add. When adding (or editing) a user agent string, you have the option to supply both a match string (the part that ZipEnable will look for in the User-Agent header) and an no-match string. The latter overrides the former, allowing you to narrow the search without having to supply an exactly-matching user agent string.

When adding or editing both match strings and no-match strings, you can use the asterisk (*) and question mark (?) characters to create multi- and single-character wildcard expressions, respectively. An asterisk will match any number of characters and a question mark will match any single character. For example:

*MSIE 5.?*

will match these User-Agent request headers:

MSIE 5.0
Mozilla/4.0 (compatible; MSIE 5.0; WinNT)
Mozilla/4.0 (compatible; MSIE 5.5; PPC)

but not these User-Agent request headers:

Mozilla/4.0 (compatible; MSIE 6.0; WinNT)
Mozilla/4.0 (compatible; MSIE; PPC)

The File Extensions list box represents the list of file types that will be excluded from compression for the currently-selected user agent string. As with the User Agent Strings listbox, you can use the Add Edit and Remove buttons to modify the items in the list. Each item is an exact match for one file extension. Wildcards are not permitted in the list except in the case of single asterisk (*) without any other characters. This will match all file extensions for the selected user agent string.

Advanced Settings - CPU Roll-off

Like the Browser Compatibility feature, the CPU Roll-off feature depends on ZipEnable's ISAPI wildcard extension. If the latter has not yet been installed in IIS, it will be installed when the CPU Roll-off is enabled on this tab.

Screenshot

When this feature is enabled, ZipEnable will periodically disable compression when the CPU usage rises above the specified threshold, and then re-enable compression when the CPU usage falls back below that threshold.

Advanced Settings - Cache Settings

The controls on the Cache Settings tab allow you to configure the disk cache where IIS stores static compressed content.

Screenshot

The controls available on this tab and their functions are as follows:

Cache Directory. This specifies where IIS 6.0 temporarily caches compressed versions of static files. You can manually type the directory location or you can click "Browse" to browse for the directory. If static compression is enabled on the Global Properties dialog and for at least one compression scheme, IIS 6.0 serves requests for static files from this cache directory if it has been previously cached. If the static does not exist in the cache directory, it is placed in a queue to be compressed by a separate process.

Limit Cache Size. This setting specifies whether or not IIS 6.0 will limit the disk space taken up by the Cache Directory. If this setting is disabled, no limit is enforced on the disk space that the "Cache Directory" uses. If this setting is enabled, IIS 6.0 will limit the disk spaced used by the "Cache Directory" to the amount in the "Maximum Disk Space Usage" setting.
Note: Limiting the cache size has a significant impact on IIS 6.0 performance because additional overhead is required to check for the limit. Use this feature only when you lack adequate disk space to cache all static content files on your Web server.

Maximum Disk Space Usage. If "Limit Cache Size" is enabled, this setting specifies the size limit that IIS 6.0 enforces on the "Cache Directory".

Files Deleted Per Disk Free. If "Limit Cache Size" is enabled, this setting specifies the number of compressed files that are deleted from the "Cache Directory" when IIS 6.0 determines that the "Cache Directory" has surpassed the "Maximum Disk Space Usage" limit. IIS 6.0 deletes the number of files equal to this setting, starting with the LRU (least-recently used) files.

Advanced Settings - Compression Exclusion

The settings on this tab allow you to exclude certain broad categories requests from being compressed.

Screenshot

The controls available on this tab and their functions are as follows:

Compression for HTTP 1.0 User Agents. This property allows compression to be disabled for User Agents (browsers or proxies) using HTTP 1.0. HTTP 1.0, as described in RFC 1945, provides a minimal level of support for certain types of compression. However, some confusion exists around HTTP 1.0 compression, especially with regard to proxy servers.

Compression for Requests Through Proxies. This property allows compression to be disabled for requests that have come through proxy servers. Certain HTTP proxy servers, including some that claim to be fully HTTP 1.1 compliant, do not correctly handle the caching of compressed objects.

Compression for Range Requests. This property allows compression to be disabled for requests that have the Range request header present. The HTTP 1.1 RFC 2068 is ambiguous about whether Range requests apply to the compressed or uncompressed version of a file. In consequence, some User Agents could be unprepared for compressed Range responses.

Advanced Settings - Compression Schemes

The controls on this tab allow you to set the relative priority of the available compression schemes.

Screenshot

Clients that accept compressed content will often issue requests that contain more than one compression scheme in the Accept-Encoding header, indicating that the browser is capable of accepting multiple forms of compressed content:

Accept-Encoding: gzip, deflate

In such cases, IIS determines which compression scheme to use when compressing a response by selecting the scheme with the highest priority value on the server side. By setting each compression scheme to a different priority, you can control this selection.

Note that the gzip compression scheme actually incorporates deflate compression, while adding mechanisms to help insure the integrity of the data. A gzipped version of a given resource will be very marginally larger than a deflate version and may take slightly longer to compress and decompress (though the difference will be quite minor in most cases), but if the data is corrupted in flight it is more likely to raise an obvious error condition than to be rendered improperly in the browser.

Advanced Settings - Miscellaneous

The Miscellaneous Settings include controls for compression buffer sizes, minimum files sizes, and compression queue lengths.

Screenshot

The controls available on this tab and their functions are as follows:

I/O Buffer Size. This property specifies the size of the buffer (in bytes) that IIS 6.0 uses to read uncompressed files. A larger buffer yields slightly faster compression performance, but at the cost of additional memory usage.
Note: This property is valid only when static compression is enabled.

Compression Buffer Size. This property specifies the size of the compression buffer (in bytes) that IIS 6.0 uses for receiving compressed data. A larger buffer yields slightly faster compression performance, but at the cost of using additional memory.
Note: This property is valid only if static or dynamic compression is enabled.

Minimum File Size for Compression. This property specifies the minimum size (in bytes) a static file must be for it to be compressed by IIS 6.0. This property can be useful because very small files do not compress well, and in some cases, compression may even make the file larger than it was initially.
Note: A value of 0 means that all files are compressed, regardless of size.

Maximum Queue Length. When static compression is enabled and IIS receives a request for a non-cached static file, the request is put into a FIFO (first in, first out) queue to be compressed and cached by a background process. This property specifies how many concurrent background compression requests can be in that queue. If the queue is full, additional compression requests are ignored until there is room in the queue.

back to top

Command Line Interface

The ZipEnable command line interface can be used to configure compression and browser exclusions without accessing the ZipEnable Settings Manager. To view a detailed help listing from the command line itself, use:

zecmd.exe ( -H | -Help | -? )

The syntax of the command line interface is:

ZECmd.exe ( -Compress | -Disable ) [ OPTION FLAGS ]

-Compress
Enables compression

-NoCompress
Disables compression

OPTION FLAGS are as follows:

-Static (or -S)
Specifies that the compression action being taken should be applied to static compression only.

Example:
zecmd.exe -Compress -Static

-Dynamic (or -D)
Specifies that the compression action being taken should be applied to dynamic compression only.

Example:
zecmd.exe -Compress -Dynamic

-All (or -A)
Specifies that the compression action being taken should be applied to both static and dynamic compression.

Example:
zecmd.exe -Compress -All

-StaticExt FileExts
Specifies the file extensions to be added to (or removed from) the static file extension list. FileExts should be a comma separated list of file extensions with no spaces.

Example:
zecmd.exe -Compress -StaticExt htm,html

-DynamicExt FileExts
Specifies the file extensions to be added to (or removed from) the dynamic file extension list. FileExts should be a comma separated list of file extensions with no spaces.

Example:
zecmd.exe -Compress -DynamicExt asp,aspx

-Site SiteNum [-P Path]
This flag specifies that the compression action should be taken at the site level for the specified SiteNum. SiteNum is the site's numerical identifier in the IIS metabase (as shown in the Identifier column of the IIS Manager). If SiteNum is an asterisk (*), the compression action will be taken for all sites. The optional -P flag specifies that the compression action should be taken only for the specified Path within the specified SiteNum.

Examples:

To disable dynamic compression for the site with the identifier of 17346739, you would use the following syntax:

zecmd.exe -NoCompress -Dynamic -Site 17346739

To enable static compression for the scripts directory under the Default Web Site, you would use the following syntax (the Default Web Site always carries an identifier of 1):

zecmd.exe -Compress -Static -Site 1 -Path /scripts

-Browser UAMatchString ExtList
This flag allows you to configure browser exclusion rules to prevent compressed responses from being served for specific combinations of browsers and file types.

UAMatchString is the string that will be compared against the value of the HTTP User-Agent header in each request, to determine if the browser (user agent) making that request matches a given rule. UAMatchString supports wildcards: an asterisk may be used to represent 0 or more characters and a question mark to represent any single character. Be sure to enclose UAMatchString

By appending an exclamation point (!) to the UAString you can add a second user agent match pattern to qualify the first one. The browser exclusion rule will then apply to a browser whose User-Agent header matches the wildcard pattern given before the exclamation point, unless it also matches the wildcard pattern given after the exclamation point.

ExtList is a list of file extensions to be excluded from compression for browsers whose user agents match UAMatchString.

Examples:

zecmd.exe -NoCompress -Browser "Mozilla/4*!*MSIE*" "wks,xls"

This will exclude from compression files with the extensions .wks and .xls for browsers whose user agent strings begin with "Mozilla/4" unless they also contain "MSIE".

zecmd.exe -NoCompress -Browser "*Mac_PowerPC*" *

This will exclude from compression all files for browsers whose user agent strings contain "Mac_PowerPC".