Quid Pro Quo has some configurable features that don't readily fit into the other categories in the Configure dialog. Here they are: the few, the proud, the miscellaneous.
Quid Pro Quo features an integral file caching mechanism. Without a file cache, a web server has to read each file from your hard disk, slowing file access. Quid Pro Quo reads files from your hard disk once, and keeps these files in memory, greatly speeding access. Quid Pro Quo keeps your cached files in memory until the amount of free memory becomes too low for Quid Pro Quo to continue servicing connections. At this point, Quid Pro Quo begins purging cached files until available memory returns to a reasonable level. Files that are frequently accessed are given higher priority than those files with few accesses.
The number of files that are cached is limited by the application's memory partition. The larger the partition, the greater the number of files that will be cached. In an optimal set up, the memory size would be large enough to fit all files into memory. Of course, this is not always possible with large sites or with machines will small amounts of memory. To make up for these shortcomings, Quid Pro Quo allows you to adjust the caching mechanism. For machines with small memory sizes, the file cache can be disabled altogether. A less drastic approach involves limiting the size of files that are to be cached. Files larger than the maximum will not be saved in memory, but rather will be read from the disk each time a client requests them. By default, the file cache is enabled and the maximum size of files to be cached is 32000 bytes. This is large enough to fit most html pages and small- to medium-sized graphics files that typically appear on web sites without cluttering memory with large files.
When setting Quid Pro Quo's memory size, keep in mind the number of files that you would like to keep cached. At a minimum, Quid Pro Quo requires 1.5 MB of memory, plus 64K for each connection thread. For instance, if you run your server with 18 connections, you should set the minimum partition to at least 2.7 MB (You can probably run the server with even less, but it is not recommended). The preferred memory size should be set well above this minimum.
When this option is enabled, the Text action will convert Macintosh characters to their ISO 8859-1 equivalents. This is useful for Western European languages that make use of characters that are encoded differently between the Macintosh and the ISO standard (such as French and German). ISO 8859-1 translation will ensure that all characters from these languages will be rendered correctly on client browsers.
Quid Pro Quo allows you to define CGI applications or plug-ins that act as pre- and postprocessors. The preprocessor is passed all incoming requests. With a preprocessor you can perform any number of functions, such as adding to Quid Pro Quo's security features or redirecting client requests. If a preprocessor's reply contains any data, Quid Pro Quo assumes that the preprocessor has handled the request and returns the preprocessor data to the client without any further processing. If the preprocessor reply contains no data, Quid Pro Quo continues to process the client request as usual.
Postprocessor CGIs are useful for adding to Quid Pro Quo's logging capabilities. The postprocessor is called after the client request has been fulfilled. Quid Pro Quo does not expect the postprocessor to return any data, since the client request is already complete. Do not return data to Quid Pro Quo from your postprocessor.
The easiest way to specify a plug-in to be used as pre- or postprocessor is to use is suffix mapping as the name of the processor. For instance, if you want to use a plug-in called "logger-plugin" which is mapped to the file suffix ".logger" as your postprocessor, enter ".logger" as your postprocessor. Logger-plugin will then be invoked after every HTTP request.
You may define as many pre- and postprocessors as you like. They will be called by Quid Pro Quo in the order in which they appear in the list. Note that the first preprocessor to return a result will terminate the preprocessor chain. Since postprocessors never return a result, all postprocessors will be called for every client connection.
Welcome | Contents | Glossary