IMPLEMENTATION

Caching and Topologies

There are two main topologies available for configuring caches.

Client / Server Implementation

Big part of WWW clients are built on top of libwww (the WWW Common Library), that handles communication protocols like HTTP, FTP and others, all used in the Web. All the proxy support needed is handled with libwww transparently. This is done by using environment variables, which are set to the URL of the proxy that knows, by this way, the protocol of the requests it should serve (In some cases there is a proxy for every protocol, but it is not very likely).

The libwww forces a connection to the proxy rather than to the remote server whenever an environment variable is used, set to a certain protocol. Usually an exception list for a client to not go through a proxy is available, too, which is useful for connecting local servers. Since proxy support in a Web is very simple-libwww is not a necessity for clients. In fact, proxy support is implemented only for HTTP version 1.0 on the server side, which most clients these days are able to use.

The proxy acts both as a server and a client. When accepting requests from clients it functions as server, but acts as a client when connected to the remote server. The proxy forwards header fields it got from the client to the remote server. However, it doesn't pass the full URL it got, but only the path and keyword portion in the URL. A full proxy server should be able to speak all Web protocols.

Implementations have developed in the last years to support passing access authorization information to the remote server. That is necessary when accessing protected documents.

 

Animation

Hierarchical Proxy relations

Cache hit animation

Cache miss + hierarchy hit animation

Cache miss + retrieving animation