IP Library Granted Patent US 9,135,364
Granted Patent B1
US 9,135,364 · App. 13/673,242 · Granted Sep 15, 2015

Delivery of web pages with markup for speed

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,135,364
App. No.
13/673,242
Granted
Sep 15, 2015
Kind
B1
Abstract

A web page delivery method and system uses speed-up parameters such as retrieval hints, cache time parameters and criticality hints to improve delivery of web pages. It may be operated by a web server, an edge server, and/or a client device. A first server receives a request to deliver the web page and determines that page includes static content elements, variable content elements, and a speed-up parameter. The first server serves the web page. It also uses the speed-up parameter to retrieve updated data corresponding to the variable content element from a second server. The first server serves the web page with the updated data corresponding to the variable content element without updating the static content elements.

Claims (144)

1. A method of web page delivery, the method comprising:

receiving, by a first server, a request to deliver a web page to a client;

identifying, by the first server, code corresponding to the web page, wherein the web page comprises a plurality of static content elements and a variable content element, wherein the variable content element is a content item that is to be updated each time the web page is served;

receiving, at the first server, speed up parameter data, wherein the speed up parameter data comprises time data specifying a length of time that a server may cache content responsive to the variable content element specified by the speed up parameter data so that the variable content element is not updated each time the web page is served;

serving, by the first server, the web page so that the web page comprises the static content elements and the variable content element;

receiving, from the client, additional requests for the web page, and for each additional request, determining, based on the length of time for the variable content element, whether the length of time has been exceeded;

storing, in a cache at the first server, the static content elements and the variable content element;

in response to determining, for a first additional request, that the length of time has not been exceeded:

serving, by the first server and from the cache, the web page including the static content elements and the variable content element;

in response to determining, for at least a second additional request after the first additional request, that the length of time has been exceeded:

retrieving only the updated data corresponding to the variable content element from a second server; and

serving, by the first server, the web page including the updated data corresponding to the particular variable content element and the static content elements, without updating the static content elements.

2. The method of claim 1 , wherein:

the web page comprises a plurality of additional variable content elements;

the speed-up parameter comprises a criticality hint having a numeric value; and

serving the web page also comprises:

initially retrieving, from the second server, a number of the variable content elements;

initially serving the web page so that it includes the initially retrieved variable content elements;

subsequently retrieving, from the second server, any remaining variable content elements that exceed the number; and

subsequently serving the web page so that it includes the initially retrieved variable content elements and the subsequently retrieved variable content elements.

3. The method of claim 1 , wherein:

the web page comprises a plurality of additional variable content elements;

the speed-up parameter comprises a criticality hint having a numeric value; and

the serving also comprises serving a number of the variable content elements that corresponds to the numeric value of the criticality hint before retrieving and serving any more of the additional variable content elements.

4. The method of claim 1 , wherein:

the web page comprises a plurality of additional variable content elements;

the speed-up parameter comprises a criticality hint having a numeric value;

serving the updated data also comprises:

initially retrieving, from the second server, a number of the variable content elements, wherein the number corresponds to the numeric value,

initially serving the web page so that it includes the initially retrieved variable content elements,

after the initially serving, subsequently retrieving, from the second server, any remaining variable content elements that exceed the number, and

subsequently serving the web page so that it includes the initially retrieved variable content elements and the subsequently retrieved variable content elements.

5. The method of claim 1 , wherein:

the web page comprises a plurality of additional variable content elements;

the speed-up parameter comprises each of a criticality hint and a cache time parameter;

serving the web page also comprises:

initially retrieving, from the second server, a number of the variable content elements, wherein the number corresponds to a numeric value of the criticality hint,

initially serving the web page so that it includes the initially retrieved variable content elements,

after the initially serving, subsequently retrieving, from the second server, any remaining variable content elements that exceed the number, and

subsequently serving the web page so that it includes the initially retrieved variable content elements and the subsequently retrieved variable content elements; and

the method further comprises:

by the first server, determining whether a period corresponding to the cache time parameter has expired, and

only retrieving the updated data from the second server if the period has expired, otherwise retrieving the updated data from a local cache.

6. The method of claim 1 , wherein:

the web page comprises a plurality of additional variable content elements;

the speed-up parameter comprises a criticality hint and a cache time parameter;

the method further comprises:

by the first server, determining whether a period corresponding to the cache time parameter has expired, and

only retrieving the updated data from the second server if the period has expired, otherwise retrieving the updated data from a local cache; and

serving the updated data also comprises serving a number of the variable content elements that corresponds to a numeric value of the criticality hint before retrieving updated data from the second server for any more of the additional variable content elements.

7. A method of web page delivery, the method comprising:

receiving, by a first server, a request to deliver a web page to a client;

determining, by the first server, that a retrieval hint is available for the web page;

using by the first server, the retrieval hint to identify at least one static content element and a variable content element for the web page, wherein the variable content element is a content item that is to be updated each time the web page is served;

receiving, at the first server, speed up parameter data, wherein the speed up parameter data comprises time data specifying a length of time that a server may cache content responsive to a variable content element specified by the speed up parameter data so that the variable content element is not updated each time the web page is served;

serving, by the first server, the web page so that the web page comprises the static content elements and the variable content element;

storing, in a cache at the first server, the static content elements and the variable content element;

receiving, by the first server, additional requests from the client to update the web page;

determining, by the first server, that a speed-up parameter is available;

for each additional request, determining, based on the length of time for the variable content element, whether the length of time has been exceeded;

in response to determining, for a first additional request, that the length of time has not been exceeded:

serving, by the first server and from the cache, the web page including the static content elements and the variable content element;

in response to determining, for a second additional request after the first additional request, that the length of time has been exceeded:

retrieving only the updated data corresponding to the variable content element from a second server; and

serving, by the first server, the web page including the updated data corresponding to the variable content element and the static content elements, without updating the static content elements.

8. The method of claim 7 , wherein:

the web page comprises a plurality of additional variable content elements;

the speed-up parameter comprises a criticality hint having a numeric value; and

serving the web page also comprises:

initially retrieving, from the second server, a number of the variable content elements;

initially serving the web page so that it includes the initially retrieved variable content elements;

subsequently retrieving, from the second server, any remaining variable content elements that exceed the number; and

subsequently serving the web page so that it includes the initially retrieved variable content elements and the subsequently retrieved variable content elements.

9. The method of claim 7 , wherein:

the web page comprises a plurality of additional variable content elements;

the speed-up parameter comprises a criticality hint having a numeric value; and

the serving also comprises serving a number of the variable content elements that corresponds to the numeric value of the criticality hint before retrieving and serving any more of the additional variable content elements.

10. The method of claim 7 , wherein:

the web page comprises a plurality of additional variable content elements;

the speed-up parameter comprises a criticality hint having a numeric value;

serving the updated data also comprises:

initially retrieving, from the second server, a number of the variable content elements, wherein the number corresponds to the numeric value,

initially serving the web page so that it includes the initially retrieved variable content elements,

after the initially serving, subsequently retrieving, from the second server, any remaining variable content elements that exceed the number, and

subsequently serving the web page so that it includes the initially retrieved variable content elements and the subsequently retrieved variable content elements.

11. The method of claim 7 , wherein:

the web page comprises a plurality of additional variable content elements;

the speed-up parameter comprises a criticality hint and a cache time parameter;

serving the web page also comprises:

initially retrieving, from the second server, a number of the variable content elements, wherein the number corresponds to a numeric value of the criticality hint,

initially serving the web page so that it includes the initially retrieved variable content elements,

after the initially serving, subsequently retrieving, from the second server, any remaining variable content elements that exceed the number, and

subsequently serving the web page so that it includes the initially retrieved variable content elements and the subsequently retrieved variable content elements; and

the method further comprises:

by the first server, determining whether a period corresponding to the cache time parameter has expired, and

only retrieving the updated data from the second server if the period has expired, otherwise retrieving the updated data from a local cache.

12. The method of claim 7 :

further comprising before the determining, storing the speed-up parameter in a look-up table by the first server; and

wherein the determining comprises accessing the look-up table to retrieve the speed-up parameter.

13. A system comprising:

a local server having a processor, one or more communication ports that are in communication via a network with a remote server and a client device, and a memory containing programming instructions that, when executed, are configured to instruct the processor to:

receive a request to deliver a web page to a client;

identify code corresponding to the web page, wherein the web page comprises a plurality of static content elements and a variable content element, and the code comprises a speed-up parameter corresponding to the variable content element, wherein the variable content element is a content item that is to be updated each time the web page is served;

receive speed up parameter data, wherein the speed up parameter data comprises time data specifying a length of time that a server may cache content responsive to a variable content element specified by the speed up parameter data so that the variable content element is not updated each time the web page is served;

serve, to the client device, the web page so that the web page comprises the static content elements and the variable content element;

store, in a cache at the first server, the static content elements and the one or more variable content elements

receive, from the client, additional requests for the web page, and for each additional request, determine, based on the length of time for the variable content element, whether the length of time has been exceeded;

in response to determining, for a first additional request, that the length of time has not been exceeded:

serve, by the first server and from the cache, the web page including the static content elements and the variable content element;

in response to determining for a second additional request after the first additional request that the length of time has been exceeded:

retrieve only the updated data corresponding to the variable content element from a second server; and

serve, to the client device, the web page including updated data corresponding to the variable content element and the static content elements, without updating the static content elements.

14. The system of claim 13 , wherein:

the web page comprises a plurality of additional variable content elements;

the speed-up parameter comprises a criticality hint having a numeric value; and

the programming instructions that, when executed, are configured to instruct the processor to cause the processor to serve the updated data comprise instructions to:

initially retrieve, from the remote server, a number of the variable content elements, wherein the number corresponds to the numeric value of the criticality hint;

initially serve the updated data to the client device so that it includes the initially retrieved variable content elements;

subsequently retrieve, from the remote server, any remaining variable content elements that exceed the number; and

serve the updated to the client device so that it includes the initially retrieved variable content elements and the subsequently retrieved variable content elements.

15. The system of claim 13 , wherein:

the web page comprises a plurality of additional variable content elements;

the speed-up parameter comprises a criticality hint having a numeric value; and

the programming instructions that, when executed, are configured to instruct the processor to serve the web page comprise instructions to serve a number of the variable content elements that corresponds to the numeric value of the criticality hint before retrieving and serving updated data for any more of the additional variable content elements.

16. The system of claim 13 , wherein:

the web page comprises a plurality of additional variable content elements;

the first server also comprises a local cache;

the speed-up parameter comprises a criticality hint and a cache time parameter;

the programming instructions that, when executed, are configured to instruct the processor to serve the web page comprise instructions to:

initially retrieve, from the remote server, a number of the variable content elements, wherein the number corresponds to a numeric value of the criticality hint,

initially serve the web page so that it includes the initially retrieved variable content elements,

after the initially serving, subsequently retrieve, from the remote server, any remaining variable content elements that exceed the number, and

subsequently serve the web page so that it includes the initially retrieved variable content elements and the subsequently retrieved variable content elements; and

the programming instructions further include instructions that, when executed, are configured to instruct the processor to:

determine whether a period corresponding to the cache time parameter has expired, and

only retrieve the updated data from the remote server if the period has expired, otherwise retrieving the updated data from the local cache.

17. The system of claim 13 , wherein:

the web page comprises a plurality of additional variable content elements;

the first server also comprises a local cache;

the speed-up parameter comprises a criticality hint and a cache time parameter;

the programming instructions further include instructions that, when executed, are configured to instruct the processor to:

determine whether a period corresponding to the cache time parameter has expired, and

only retrieve the updated data from the remote server if the period has expired, otherwise retrieving the updated data from the local cache; and

the programming instructions that, when executed, are configured to instruct the processor to serve the updated data comprise instructions to serve a number of the variable content elements that corresponds to a numeric value of the criticality hint before retrieving updated data from the second server for any more of the additional variable content elements.

Assignments (2)
CHANGE OF NAME Recorded Oct 2, 2017
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 044334/0466 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 9, 2012
From: SUNDARAM, SRIDHAR; RAMANI, RAMKUMAR; BANSAL, RAHUL
To: GOOGLE INC.
Reel/Frame 029272/0171 →