1. A method of caching data, which involves the steps of: receiving from one of a plurality of network clients a request for a data item; creating a private cache uniquely associated with the one network client; initiating association of the private cache with a shared cache, the shared cache including the requested data item and being associated with a number of the network clients; and updating the private cache with the requested data item.