Method and apparatus for acceleration by prefetching associated objects
First Claim
1. A method of accelerating client-server transactions at a proxy, the method comprising:
- intercepting an initial request from a client;
forwarding the initial request to an origin server;
receiving a response from the origin server;
recording the initial request as a root node;
outputting the response to the client;
intercepting subsequent requests from the client;
identifying a first subsequent request associated with the initial request;
constructing an associate tree having the root node and at least one leaf node which is coupled to that root node, wherein the at least one leaf node is associated with the identified first subsequent request, and the root node comprises a location for a base page;
expanding the associate tree by adding leaf nodes associated with further subsequent requests from the client which have been intercepted and identified as being associated with the initial request; and
performing a prefetching operation using the associate tree, wherein the prefetching operation includes prefetching the root node corresponding to the associate tree the leaf nodes corresponding to the associate tree.
19 Assignments
0 Petitions
Accused Products
Abstract
Association information is used to build association trees to associate base pages and embedded objects at a proxy. An association tree has a root node containing a URL for a base page, and zero or more leaf nodes each containing a URL for an embedded object. In most cases, an association tree will maintain the invariant that all leaves contain distinct URLs. However, it is also possible to have an association tree in which the same URL appears in multiple nodes. An association tree may optionally contain one or more internal nodes, each of which contains a URL that is an embedded object for some other base page, but which may also be fetched as a base page itself. Given a number of association trees and a base-page URL, a prefetch system finds the root or interior node corresponding to that URL (if any) and traverses the tree from that node, prefetching URLs until the URL of the last leaf node is prefetched. The prefetching starts the process of bringing over the various embedded objects before the user or program would ordinarily fetch them.
48 Citations
20 Claims
-
1. A method of accelerating client-server transactions at a proxy, the method comprising:
-
intercepting an initial request from a client; forwarding the initial request to an origin server; receiving a response from the origin server; recording the initial request as a root node; outputting the response to the client; intercepting subsequent requests from the client; identifying a first subsequent request associated with the initial request; constructing an associate tree having the root node and at least one leaf node which is coupled to that root node, wherein the at least one leaf node is associated with the identified first subsequent request, and the root node comprises a location for a base page; expanding the associate tree by adding leaf nodes associated with further subsequent requests from the client which have been intercepted and identified as being associated with the initial request; and performing a prefetching operation using the associate tree, wherein the prefetching operation includes prefetching the root node corresponding to the associate tree the leaf nodes corresponding to the associate tree. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A method of associating embedded objects with base pages at a proxy, the method comprising:
-
classifying a request as a base page or as an embedded object wherein classifying comprises distinguishing requests based on structure of their prefixes, suffixes, or contained substrings; detecting a containment attribute on a request for an embedded object; extracting a base page identification from the containment attribute; grouping the embedded object with the base page identified in the extracting step; marking a response with one or more distinctive tags representing a grouping from the grouping step, wherein marking includes adding the one or more distinctive tags to the response; detecting the one or more distinctive tags in a subsequent request, wherein information in the one or more distinctive tags is used by the proxy to relate the subsequent request to the base page; wherein grouping the embedded object comprises building a tree data structure using the information in the one or more distinctive tags, the tree data structure comprises a root node and at least one leaf node; wherein the base page identification is at the root node, and the information in the subsequent request that is used by the proxy to relate the subsequent request to the base page is associated with a leaf node. - View Dependent Claims (7, 8, 9, 10, 11, 12, 13)
-
-
14. A proxy interposed between at least one client and at least one server for accelerating client-server transactions, the proxy comprising:
-
a processor including memory modules and mass storage units; program instructions which when executed by the processor, cause the proxy to perform the steps of intercepting requests issued from a client, classifying the requests, recording a base page, constructing an associate tree having one or more root nodes and at least one leaf node, wherein a first root node of the one or more root nodes is associated with an initial request and comprises a location for the base page, and the at least one leaf node is coupled to at least one of the root nodes and comprises a subsequent request associated with the initial request, and expanding the associate tree by adding leaf nodes associated with further subsequent requests from the client which have been intercepted and identified as being associated with the initial request; and program instructions which when executed by the processor, cause the proxy to perform the steps of performing a prefetching operation using the associate tree, wherein the prefetching operation includes prefetching objects based on the associate tree. - View Dependent Claims (15, 16, 17, 18, 19, 20)
-
Specification