System and method of accessing a document efficiently through multi-tier web caching
First Claim
1. A method of providing a document to a client, comprising:
- at a server that is distinct from the client and having one or more processors and memory storing one or more programs for execution by the one or more processors;
providing the document to the client;
identifying a plurality of referenced documents referenced by the document;
assigning respective priorities to at least some of the plurality of referenced documents; and
after receiving a request to provide the document to the client and before receiving a request from the client to provide a respective referenced document of the plurality of referenced documents, performing a preload operation including providing the respective referenced document of the plurality of referenced documents, according to its respective priority, to the client, the preload operation including providing to the client a respective content fingerprint of the respective referenced document that is being provided to the client.
2 Assignments
0 Petitions
Accused Products
Abstract
A client-server network system implements a multi-tier caching strategy for a user to access a document efficiently. When serving a document to client, the document is examined for embedded references to other documents. The embedded references are extracted and then assigned a priority. The documents referenced are obtained locally from the server cache or obtained from their respective web hosts and transmitted according to the assigned priority. If the client determines that it has the document, the transmission of is terminated. If the client or server determines that a newly requested document is one of the referenced documents being transmitted, the transmission is given a higher priority. In some instances, the server calculates a content difference between a current version of a referenced and a previous version and transmits this content.
230 Citations
36 Claims
-
1. A method of providing a document to a client, comprising:
at a server that is distinct from the client and having one or more processors and memory storing one or more programs for execution by the one or more processors; providing the document to the client; identifying a plurality of referenced documents referenced by the document; assigning respective priorities to at least some of the plurality of referenced documents; and after receiving a request to provide the document to the client and before receiving a request from the client to provide a respective referenced document of the plurality of referenced documents, performing a preload operation including providing the respective referenced document of the plurality of referenced documents, according to its respective priority, to the client, the preload operation including providing to the client a respective content fingerprint of the respective referenced document that is being provided to the client. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
8. A method of serving a document, comprising:
at a server that is distinct from a client and having one or more processors and memory storing one or more programs for execution by the one or more processors; serving the document to the client; identifying in the document a reference to a referenced document; and after receiving a request to provide the document to the client and before receiving a request from the client to provide the referenced document, preloading content to the client, including serving to the client a first content fingerprint of the referenced document, a second content fingerprint representing a different version of the referenced document, and a content difference of the referenced document. - View Dependent Claims (9)
-
10. A method of serving a document, comprising:
at a server that is distinct from the client and having one or more processors and memory storing one or more programs for execution by the one or more processors; serving a document content of the document to the client; identifying in the document content a reference to a referenced document; after receiving a request to provide the document to the client and before receiving a request from the client to provide the referenced document, obtaining a fresh version of the referenced document; generating a content difference between the fresh version of the referenced document and an earlier version of the referenced document; generating a content fingerprint of the fresh version of the referenced document; and serving to the client, in response to a document request, the content difference and a content fingerprint of the earlier version of the referenced document.
-
11. A method of serving a document, comprising:
at a server that is distinct from the client and having one or more processors and memory storing one or more programs for execution by the one or more processors; serving the document to the client; determining a set of referenced documents referenced in the document, the set being less than all the referenced documents referenced in the document; assigning a respective priority to each of the set of-referenced documents; and after receiving a request to provide the document to the client and before receiving a request from the client to provide a respective referenced document of the set of referenced documents, performing a preload operation including providing each of the set of referenced documents to the client according to its respective priority. - View Dependent Claims (12, 13)
-
14. A method of requesting documents, comprising:
at a client remote from a server and having one or more processors and memory storing one or more programs for execution by the one or more processors; sending a request for a first document to the server; receiving a first response including the first document; after sending the request for the first document to the server and before requesting a second document referenced in the first document, receiving a second response, corresponding to a preload operation by the server, the second response including a content fingerprint based on a second document content of a second document referenced in the first document; identifying whether the content fingerprint is resident in the client; and sending a communication to the server indicating that the second response should be terminated.
-
15. A system for serving a document to a client, comprising:
-
a document server including; one or more processing units for executing programs; memory storing one or more programs be executed by the one or more central processing units; the one or more programs comprising instructions for; transmitting the document to the client; identifying a plurality of referenced documents referenced by the document; and assigning respective priorities to least some of the plurality of referenced documents; wherein the document server is configurable to perform a preload operation including, after receiving a request to provide the document to the client and before receiving a request from the client to provide a respective referenced document of the plurality of referenced documents, providing the respective document of the plurality of referenced documents, according to its respective priority, to the client, the preload operation including providing to the client a respective content fingerprint of the respective referenced document that is being provided to the client. - View Dependent Claims (16, 17, 18, 19, 20, 21)
-
-
22. A system for serving a document, comprising:
-
a document server unit including; one or more processing units for executing programs; memory storing one or more programs be executed by the one or more central processing units; the one or more programs comprising instructions for; providing the document to a client; determining a set of referenced documents referenced in the document, the set being less than all the referenced documents referenced in the document; assigning a respective priority to each of the set of referenced documents; and wherein the document server is configurable to perform a preload operation including, after receiving a request to provide the document to the client and before receiving a request from the client to provide a respective referenced document of the set of referenced documents, providing each of the set of referenced documents to the client according to its respective priority. - View Dependent Claims (23, 24)
-
-
25. A client system for requesting documents, comprising:
-
one or more processing units for executing programs; memory storing one or more programs be executed by the one or more central processing units; the one or more programs comprising instructions for; sending a request for a first document to a server; receiving a first response including the first document; after sending the request for the first document to the server and before requesting a second document referenced in the first document, receiving a second response, corresponding to a preload operation by the server, the second response including a content fingerprint based on a second document content of a second document referenced in the first document; determining whether the content fingerprint resides in the client; and sending a communication to the server indicating that the second response should be terminated.
-
-
26. A non-transitory computer readable storage medium storing one or more programs configured for execution by a computer, the one or more programs comprising:
-
instructions for providing the document to the client; instructions for identifying a plurality of referenced documents referenced by the document; instructions for assigning respective priorities to least some of the plurality of referenced documents; and instructions for performing a preload operation after receiving a request to provide the document to the client and before receiving a request from the client to provide a respective referenced document of the plurality of referenced documents, the preload operation including providing the respective referenced document of the plurality of referenced documents, according to its respective priority, to the client, the preload operation including providing to the client a respective content fingerprint of the respective referenced document that is being provided to the client. - View Dependent Claims (27, 28, 29, 30, 31, 32)
-
-
33. A non-transitory computer readable storage medium storing one or more programs configured for execution by a computer, the one or more programs comprising:
-
instructions for serving a document content of a document to a client; instructions for identifying in the document content a referenced document; instructions for obtaining a fresh version of the referenced document; instructions for generating, after receiving a request to provide the document to the client and before receiving a request from the client to provide the referenced document, a content difference between the fresh version of the referenced document and an earlier version of the referenced document; instructions for generating a content fingerprint of the fresh version of the referenced document; and instructions for serving to the client, in response to a document request, the content difference and a content fingerprint of the earlier version of the referenced document.
-
-
34. A non-transitory computer readable storage medium storing one or more programs configured for execution by a computer, the one or more programs comprising:
-
instructions for serving a document to a client; instructions for determining a set of referenced documents referenced in the document, the set being less than all the referenced documents referenced in the document; instructions for assigning a respective priority to each of the set of referenced documents; and instructions for performing, after receiving a request to provide the document to the client and before receiving a request from the client to provide a respective referenced document of the set of referenced documents, a preload operation including providing each of the set of referenced documents to the client according to its respective priority. - View Dependent Claims (35, 36)
-
Specification