IP Library › Granted Patent US 9,860,334
Granted Patent B2
US 9,860,334 · App. 14/975,505 · Granted Jan 2, 2018

Dynamic content caching system

Inventors: Leon Kuperman (Tarzana, CA); Kipras Mancevi{hacek over (c)}ius (Kaunas, LT); Dmytro Bekinin (Kiev, UA)
Assignee: Zenedge, Inc.
H04L67/2842G06F17/30902H04L67/02
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,860,334
App. No.
14/975,505
Filed
Dec 18, 2015
Granted
Jan 2, 2018
Kind
B2
Art Unit
2441
USPC
709/213
Abstract

A proxy server routes a request for online content from a user device to an origin server, which returns the requested online content to the proxy server. The proxy server passes the online content to the user device. In order to service subsequent user device requests with cached content, the proxy server, having received the initially requested online content from the origin server, parses out dynamic content specific to the user from static content common to many users within the web page content according to tags identifying the dynamic content. The proxy server stores the dynamic content within a personalized cache and also stores an association between the user/user device for the dynamic content stored. In this way, a subsequent request from the user device for the same online content may be serviced from cache, and include dynamic content specific to that user/user device by way of the personalized cache.

Claims (83)

1. A method for caching dynamic content comprising:

responsive to receiving an initial request for a web page including online content from a user device:

routing the initial request to an origin server;

receiving a response from the origin server including the requested web page;

parsing out dynamic content from static content within the online content of the web page, the dynamic content identified by one or more dynamic content tags within the web page;

storing the static content of the web page within a static cache; and

storing the parsed out dynamic content of the web page within a personalized cache; and

responsive to receiving a subsequent request for the web page from the user device:

retrieving the static content of the web page from the static cache;

identifying the one or more dynamic content tags within the web page from the retrieved static content;

retrieving, from the personalized cache, the dynamic content of the web page corresponding to the one or more dynamic content tags;

merging the dynamic content and the static content to assemble a cached version of the web page; and

transmitting the cached version of the web page to the user device.

2. The method of claim 1 , wherein the cached version of the web page is a partially cached version of the web page, the partially cached version of the web page including a first portion of dynamic content corresponding to a first dynamic content tag in the one or more dynamic content tags and missing a second portion of dynamic content corresponding to a second dynamic content tag in the one or more dynamic content tags, the method further comprising, responsive to receiving the subsequent request for the web page from the user device:

inserting a placeholder for the second portion of dynamic content within the partially cached version of the web page; and

transmitting the partially cached version of the web page to the user device.

3. The method of claim 2 , further comprising:

requesting a current version of the web page from the origin server, the current version of the web page including updated dynamic content;

parsing out the updated dynamic content from the static content of the web page, the updated dynamic content identified by the one or more dynamic content tags within the web page and including a portion of updated dynamic content corresponding to the second dynamic content tag; and

storing the parsed out updated dynamic content of the web page within the personalized cache.

4. The method of claim 3 , further comprising:

receiving a request from the user device for updated dynamic content corresponding to the second dynamic content tag; and

transmitting the portion of the updated dynamic content corresponding to the second dynamic content tag to the user device.

5. The method of claim 4 , wherein the placeholder causes the user device to request the updated dynamic content for the second portion of dynamic content missing from the partially cached version of the web page.

6. The method of claim 1 , wherein storing the parsed out dynamic content comprises storing a reference to the dynamic content stored in the personalized cache in association with an identifier for the user device.

7. The method of claim 5 , wherein retrieving, from the personalized cache, the dynamic content of the web page corresponding to the one or more dynamic content tags comprises:

requesting dynamic content from the personalized cache based on the association of the reference and the identifier for the user device.

8. A non-transitory computer-readable medium comprising instructions that when executed by a processor cause the processor to:

responsive to receiving an initial request for a web page including online content from a user device:

route the initial request to an origin server;

receive a response from the origin server including the requested web page;

parse out dynamic content from static content within the online content of the web page, the dynamic content identified by one or more dynamic content tags within the web page;

store the static content of the web page within a static cache; and

store the parsed out dynamic content of the web page within a personalized cache; and

responsive to receiving a subsequent request for the web page from the user device:

retrieve the static content of the web page from the static cache;

identify the one or more dynamic content tags within the web page from the retrieved static content;

retrieve, from the personalized cache, the dynamic content of the web page corresponding to the one or more dynamic content tags;

merge the dynamic content and the static content to assemble a cached version of the web page; and

transmit the cached version of the web page to the user device.

9. The non-transitory computer-readable medium of claim 8 , wherein the cached version of the web page is a partially cached version of the web page, the partially cached version of the web page including a first portion of dynamic content corresponding to a first dynamic content tag in the one or more dynamic content tags and missing a second portion of dynamic content corresponding to a second dynamic content tag in the one or more dynamic content tags, the non-transitory computer-readable medium further comprising instructions that cause the processor to, responsive to receiving the subsequent request for the web page from the user device:

insert a placeholder for the second portion of dynamic content within the partially cached version of the web page; and

transmit the partially cached version of the web page to the user device.

10. The non-transitory computer-readable medium of claim 9 , further comprising instructions that cause the processor to:

request a current version of the web page from the origin server, the current version of the web page including updated dynamic content;

parse out the updated dynamic content from the static content of the web page, the updated dynamic content identified by the one or more dynamic content tags within the web page and including a portion of updated dynamic content corresponding to the second dynamic content tag; and

store the parsed out updated dynamic content of the web page within the personalized cache.

11. The non-transitory computer-readable medium of claim 10 , further comprising instructions that cause the processor to:

receive a request from the user device for updated dynamic content corresponding to the second dynamic content tag; and

transmit the portion of the updated dynamic content corresponding to the second dynamic content tag to the user device.

12. The non-transitory computer-readable medium of claim 11 , wherein the placeholder causes the user device to request the updated dynamic content for the second portion of dynamic content missing from the partially cached version of the web page.

13. The non-transitory computer-readable medium of claim 8 , wherein storing the parsed out dynamic content comprises storing a reference to the dynamic content stored in the personalized cache in association with an identifier for the user device.

14. The non-transitory computer-readable medium of claim 12 , wherein retrieving, from the personalized cache, the dynamic content of the web page corresponding to the one or more dynamic content tags comprises:

requesting dynamic content from the personalized cache based on the association of the reference and the identifier for the user device.

15. A system for caching dynamic content, the system comprising:

a processor; and

a non-transitory computer-readable medium comprising instructions that when executed by the processor cause the processor to:

responsive to receiving an initial request for a web page including online content from a user device:

route the initial request to an origin server;

receive a response from the origin server including the requested web page;

parse out dynamic content from static content within the online content of the web page, the dynamic content identified by one or more dynamic content tags within the web page;

store the static content of the web page within a static cache; and

store the parsed out dynamic content of the web page within a personalized cache; and

responsive to receiving a subsequent request for the web page from the user device:

retrieve the static content of the web page from the static cache;

identify the one or more dynamic content tags within the web page from the retrieved static content;

retrieve, from the personalized cache, the dynamic content of the web page corresponding to the one or more dynamic content tags;

merge the dynamic content and the static content to assemble a cached version of the web page; and

transmit the cached version of the web page to the user device.

16. The system of claim 15 , wherein the cached version of the web page is a partially cached version of the web page, the partially cached version of the web page including a first portion of dynamic content corresponding to a first dynamic content tag in the one or more dynamic content tags and missing a second portion of dynamic content corresponding to a second dynamic content tag in the one or more dynamic content tags, the non-transitory computer-readable medium further comprising instructions that cause the processor to, responsive to receiving the subsequent request for the web page from the user device:

insert a placeholder for the second portion of dynamic content within the partially cached version of the web page; and

transmit the partially cached version of the web page to the user device.

17. The system of claim 16 , wherein the non-transitory computer-readable medium further comprises instructions that cause the processor to:

request a current version of the web page from the origin server, the current version of the web page including updated dynamic content;

parse out the updated dynamic content from the static content of the web page, the updated dynamic content identified by the one or more dynamic content tags within the web page and including a portion of updated dynamic content corresponding to the second dynamic content tag; and

store the parsed out updated dynamic content of the web page within the personalized cache.

18. The system of claim 17 , wherein the non-transitory computer-readable medium further comprises instructions that cause the processor to:

receive a request from the user device for updated dynamic content corresponding to the second dynamic content tag; and

transmit the portion of the updated dynamic content corresponding to the second dynamic content tag to the user device.

19. The system of claim 18 , wherein the placeholder causes the user device to request the updated dynamic content for the second portion of dynamic content missing from the partially cached version of the web page.

20. The system of claim 15 , wherein storing the parsed out dynamic content comprises storing a reference to the dynamic content stored in the personalized cache in association with an identifier for the user device.

21. The system of claim 19 , wherein retrieving, from the personalized cache, the dynamic content of the web page corresponding to the one or more dynamic content tags comprises:

requesting dynamic content from the personalized cache based on the association of the reference and the identifier for the user device.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 25, 2016
From: KUPERMAN, LEON; MANCEVICIUS, KIPRAS; BEKININ, DMYTRO
To: ZENEDGE, INC.
Reel/Frame 037572/0556 →
Continuity (2)
Provisional Application 62095761 · Dec 22, 2014
Related Publication 20160182672A1 · Jun 23, 2016