There are three major classes related to web cache, as it is in the real world: client (browser), server, and cache. Because they share a common feature, i.e., the HTTP protocol, they are derived from the same base class Http (Name of OTcl class, it's called HttpApp in C++). For the following reasons, it's not a real Application. First, an HTTP object (i.e., client/cache/server) may want to maintain multiple concurrent HTTP connections, but an Application contains only one agent_. Also, an HTTP object needs to transmit real data (e.g., HTTP header) and that's provided by TcpApp instead of any Agent. Therefore, we choose to use a standalone class derived from TclObject for common features of all HTTP objects, which are managing HTTP connections and a set of pages. In the rest of the section, we'll discuss these functionalities of Http. In the next three sections, we'll in turn describe HTTP client, cache and server.