The basic assumption behind proxy-side pre-pushing is that users have idle times between requests (because users often read some parts of one document before jumping to the next one), the proxy can predict what documents users will access in the near future, and the proxy can take advantage of the idle time to push the documents to the users. A proxy observes the behavior of many users' Web accesses and from these may be able to learn common access patterns and use this to predict what document a user is likely to access in the near future. The general configurations of the proxy and clients are shown in Figure 1.
When a user has a request it can not service with its own cache it looks into the prefetch buffer. If the document is in the prefetch buffer the user sends a small update message to the proxy that it used the page. If the document is not in the prefetch buffer the user sends a request for the page to the proxy. There is a third possibility, the document the user want may be in the process of being tranferred into the prefetch buffer, in which case the user can get the document as it is being downloaded. In this last case the user waits until the document is downloaded and then sends an update to the proxy.
When the proxy receives a request from a user it immediately starts fetching the document from the correct content server (if the document is not in its own web cache) and sends the document to the user. A user request may preempt a document currently being pushed to the user side. In this case the partially pre-pushed document at the user end is discarded. After the proxy services a request, or when it receives an update, it updates the history structure for the user's last access. The proxy then predicts what pages, if any, are candidates for pre-pushing. It then orders these pages by their probabilities and starts sending them. When the next user request or update comes in the proxy clears the list of candidate pages it is sending and recomputes the list of candidate pages based on the new information.
A proxy will only pre-push documents to a user if the documents are in the proxy's web cache. This restricts the mechanism from producing extra traffic on the Internet. Note that prepushing can still cause increased traffic on the dial-up connection between the proxy and the users.