| |
![]()
Proxy relay (no caching) service can be provided for all standard HTTP/1.0 and HTTP/1.1 methods. The HTTP/1.0 PUT extension is not supported. Access to basic proxy services is controlled via http:*proxy-service* and http:*proxy-subnets*. The proxy uses the standard CL-HTTP client to retrieve resources, and the default HTTP version used for making such requests is controlled by http:*client-http-version*. The relay methods are intended to be HTTP/1.1 compliant, and discrepancies should be reported (or fixed!) when encountered.
Proxy access to the experimental
caching routines is controlled via http:*proxy-caching-p*. The current
version of the cache uses in-memory data structures to store meta-information about cached representations of
resources, and the file-system to store their actual entities. The file HTTP:proxy;database.lisp illustrates how to
define new database implementations. While the caching functionality is not yet HTTP/1.1 compliant, it
interoperates reasonably with HTTP/1.0 clients.
If the proxy is currently loaded, you can view a list of the cached resources on the server. Note that the cache currently does not automatically expunge itself to make more space. However, methods such as http:cache-size and http:expunge-cache allow such a strategy to be implemented. You may wish to run a seperate process that attempts to keep the cache size within a certain window.
As with the rest of the server, we need
the help of the CL-HTTP community to push this functionality forward. Most changes to the relay methods should be
in the form of bug fixes or efficiency imporovements. The caching methods in HTTP:proxy;proxy-cache.lisp need to
be further abstracted and moved closer to HTTP/1.1 compliance.
As of August 1997, these are some of the issues:
This proxy is meant more as a platform for intelligent caching and collaboration research than a competitor for high-load corporate proxies. Several immediate oppurtunities present themselves.
![]()
Christopher Vincent (cvince@ai.mit.edu)