| |
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 HTTP/1.1 compliant, and discrepancies should be reported (or fixed!) when encountered.
Proxy access to the 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 HTTP/1.1 compliant, yet 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. The cache implements incremental and full garbage collection strategies that delete least recently accessed resources in order to stay within the limits specified by http:*proxy-cache-maximum-size* and http:*proxy-cache-maximum-resources*
The proxy has a reverse proxy capability as well. URLs can be exported that map to URL spaces on other servers. This capability is particular useful when providing HTTPS service for a back side server running ordinary HTTP, or for distributing work over several back side servers. See the documentation for http:export-url