IP Library Granted Patent US 8,370,424
Granted Patent B2
US 8,370,424 · App. 12/058,547 · Granted Feb 5, 2013

Systems and methods for caching and serving dynamic content

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 8,370,424
App. No.
12/058,547
Granted
Feb 5, 2013
Kind
B2
Abstract

A web server and a shared caching server are described for serving dynamic content to users of at least two different types, where the different types of users receive different versions of the dynamic content. A version of the dynamic content includes a validation header, such as an ETag, that stores information indicative of the currency of the dynamic content and information indicative of a user type for which the version of the dynamic content is intended. In response to a user request for the dynamic content, the shared caching server sends a validation request to the web server with the validation header information. The web server determines, based on the user type of the requestor and/or on the currency of the cached dynamic content whether to instruct the shared caching server to send the cached content or to send updated content for serving to the user.

Claims (86)

1. A computer-implemented method of serving web content with a cache server, the method comprising:

storing a cached version of a web page in memory, the cached version of the web page reflecting a version of the web page as of a particular time or date;

receiving a request from a client for a version of the web page;

sending a validation request to an origin server, the origin server storing a current version of the web page that reflects a version of the web page that has been modified since the particular date or time of the cached version of the web page;

receiving a validation response from the origin server, wherein:

if the client is associated with a first category of clients for which cached versions of web pages are to be served, the validation response includes an instruction for the cache server to provide the cached version of the web page to the client; and

if the client is associated with a second category of clients for which current versions of web pages are to be served, the validation response includes the current version of the web page and an instruction for the cache server to provide the current version of the web page to the client; and

providing the cached version of the web page or the current version of the web page to the client according to the validation response.

2. The method of claim 1 , wherein the validation request includes information indicating the particular time or date associated with the cached version of the web page.

3. The method of claim 2 , wherein the validation request includes information indicative of a client type.

4. The method of claim 3 , further comprising:

determining the client type based on cookie information included in the request from the client.

5. The method of claim 1 , wherein the validation request includes an ETag that includes information indicating the particular time or date associated with the cached version of the web page.

6. The method of claim 5 , wherein the ETag includes information indicative of a client type.

7. The method of claim 5 , further comprising:

receiving a validation response that includes the current version of the web page and an instruction to provide the current version of the web page to the client, wherein the current version of the web page received from the origin server includes a new ETag that includes information indicating a particular date or time associated with the current version of the web page;

providing the current version of the web page to the client; and

using the current version of the web page received from the origin server as the cached version of the web page.

8. The method of claim 1 , wherein the second category of clients comprises clients with ownership rights to content associated with the web page, and wherein the first category of clients comprises clients without ownership rights to content associated with the web page.

9. The method of claim 1 , wherein the second category of clients comprises members of a web-based service associated with the web page, and wherein the first category of clients comprises non-members of the web-based service associated with the web page.

10. A computer-implemented method of serving web content with an origin server, the method comprising:

providing a cached version of a web page to a cache server, the cached version of the web page reflecting a version of the web page as of a particular time or date;

storing a current version of the web page in memory, wherein the current version of the web page represents a version of the web page that has been modified since the particular date or time of the cached version of the web page;

receiving a validation request from the cache server, wherein the validation request includes information about a client requesting a version of the web page from the cache server;

determining whether the client is associated with a first category of clients or a second category of clients, wherein the first category of clients represents clients for which cached versions of web pages are to be served and the second category of clients represents clients for which current versions of web pages are to be served;

sending a validation response to the cache server, wherein:

if the client is associated with the first category of clients, the validation response includes an instruction for the cache server to provide the cached version of the web page to the client; and

if the client is associated with the second category of clients, the validation response includes the current version of the web page and an instruction for the cache server to provide the current version of the web page to the client.

11. The method of claim 10 , wherein the validation request includes information indicating the particular time or date associated with the cached version of the web page.

12. The method of claim 11 , wherein the validation request includes information indicative of a client type, and wherein the origin server determines whether the client is associated with the first category of clients or the second category of clients using the information indicative of the client type.

13. The method of claim 10 , wherein the validation request includes an ETag that includes information indicating the particular time or date associated with the cached version of the web page.

14. The method of claim 13 , wherein the ETag includes information indicative of a client type, and wherein the origin server determines whether the client is associated with the first category of clients or the second category of clients using the information indicative of the client type.

15. The method of claim 10 , wherein providing the cached version of the web page to the cache server further comprises:

providing the cached version of the web page along with an ETag that indicates the particular time or date associated with the cached version.

16. The method of claim 15 , further comprising:

sending a validation response to the cache server that includes the current version of the web page along with an ETag that includes information indicating a particular date or time associated with the current version of the web page.

17. The method of claim 10 , wherein the second category of clients comprises clients with ownership rights to content associated with the web page, and wherein the first category of clients comprises clients without ownership rights to content associated with the web page.

18. The method of claim 10 , wherein the second category of clients comprises members of a web-based service associated with the web page, and wherein the first category of clients comprises non-members of the web-based service associated with the web page.

19. A cache server, comprising:

a processing system comprising one or more processors; and

a memory system comprising one or more non-transitory computer-readable media containing instructions that, when executed by the processing system, cause the cache server to perform operations comprising:

storing a cached version of a web page in memory, the cached version of the web page reflecting a version of the web page as of a particular time or date;

receiving a request from a client for a version of the web page;

sending a validation request to an origin server, the origin server storing a current version of the web page that reflects a version of the web page that has been modified since the particular date or time of the cached version of the web page;

receiving a validation response from the origin server, wherein:

if the client is associated with a first category of clients for which cached versions of web pages are to be served, the validation response includes an instruction for the cache server to provide the cached version of the web page to the client; and

if the client is associated with a second category of clients for which current versions of web pages are to be served, the validation response includes the current version of the web page and an instruction for the cache server to provide the current version of the web page to the client; and

providing the cached version of the web page or the current version of the web page to the client according to the validation response.

20. The system of claim 19 , wherein the validation request includes information indicating the particular time or date associated with the cached version of the web page.

21. The system of claim 20 , wherein the validation request includes information indicative of a client type.

22. The system of claim 21 , wherein the memory system further includes instructions for:

determining the client type based on cookie information included in the request from the client.

23. The system of claim 19 , wherein the validation request includes an ETag that includes information indicating the particular time or date associated with the cached version of the web page.

24. The system of claim 23 , wherein the ETag includes information indicative of a client type.

25. The system of claim 23 , wherein the memory system further includes instructions for:

receiving a validation response that includes the current version of the web page and an instruction to provide the current version of the web page to the client, wherein the current version of the web page received from the origin server includes a new ETag that includes information indicating a particular date or time associated with the current version of the web page;

providing the current version of the web page to the client; and

using the current version of the web page received from the origin server as the cached version of the web page.

26. The system of claim 19 , wherein the second category of clients comprises clients with ownership rights to content associated with the web page, and wherein the first category of clients comprises clients without ownership rights to content associated with the web page.

27. The system of claim 19 , wherein the second category of clients comprises members of a web-based service associated with the web page, and wherein the first category of clients comprises non-members of the web-based service associated with the web page.

28. An origin server, comprising:

a processing system comprising one or more processors; and

a memory system comprising one or more non-transitory computer-readable media containing instructions that, when executed by the processing system, cause the cache server to perform operations comprising:

providing a cached version of a web page to a cache server, the cached version of the web page reflecting a version of the web page as of a particular time or date;

storing a current version of the web page in memory, wherein the current version of the web page represents a version of the web page that has been modified since the particular date or time of the cached version of the web page;

receiving a validation request from the cache server, wherein the validation request includes information about a client requesting a version of the web page from the cache server;

determining whether the client is associated with a first category of clients or a second category of clients, wherein the first category of clients represents clients for which cached versions of web pages are to be served and the second category of clients represents clients for which current versions of web pages are to be served;

sending a validation response to the cache server, wherein:

if the client is associated with the first category of clients, the validation response includes an instruction for the cache server to provide the cached version of the web page to the client; and

if the client is associated with the second category of clients, the validation response includes the current version of the web page and an instruction for the cache server to provide the current version of the web page to the client.

29. The system of claim 28 , wherein the validation request includes information indicating the particular time or date associated with the cached version of the web page.

30. The system of claim 29 , wherein the validation request includes information indicative of a client type, and wherein the origin server determines whether the client is associated with the first category of clients or the second category of clients using the information indicative of the client type.

31. The system of claim 28 , wherein the validation request includes an ETag that includes information indicating the particular time or date associated with the cached version of the web page.

32. The system of claim 31 , wherein the ETag includes information indicative of a client type, and wherein the origin server determines whether the client is associated with the first category of clients or the second category of clients using the information indicative of the client type.

33. The system of claim 28 , wherein providing the cached version of the web page to the cache server further comprises:

providing the cached version of the web page along with an ETag that indicates the particular time or date associated with the cached version.

34. The system of claim 33 , wherein the memory system further includes instructions for:

sending a validation response to the cache server that includes the current version of the web page along with an ETag that includes information indicating a particular date or time associated with the current version of the web page.

35. The system of claim 28 , wherein the second category of clients comprises clients with ownership rights to content associated with the web page, and wherein the first category of clients comprises clients without ownership rights to content associated with the web page.

36. The method of claim 28 , wherein the second category of clients comprises members of a web-based service associated with the web page, and wherein the first category of clients comprises non-members of the web-based service associated with the web page.

37. A computer-implemented method, the method comprising:

storing a cached version of a web page in memory, the cached version of the web page reflecting a version of the web page as of a particular time or date;

receiving a request from a client for a version of the web page;

determining whether the client is associated with a first category of clients or a second category of clients, wherein the first category of clients represents clients for which cached versions of web pages are to be served and the second category of clients represents clients for which current versions of web pages are to be served;

if the client is associated with the first category of clients, providing the cached version of the web page to the client; and

if the client is associated with the second category of clients, providing a current version of the web page to the client, wherein the current version of the web page represents a version of the web page that has been modified since the particular date or time of the cached version of the web page.

Assignments (10)
PATENT SECURITY AGREEMENT (FIRST LIEN) Recorded Sep 29, 2022
From: YAHOO ASSETS LLC
To: ROYAL BANK OF CANADA, AS COLLATERAL AGENT
Reel/Frame 061571/0773 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 16, 2021
From: YAHOO AD TECH LLC (FORMERLY VERIZON MEDIA INC.)
To: YAHOO ASSETS LLC
Reel/Frame 058982/0282 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 26, 2020
From: OATH INC.
To: VERIZON MEDIA INC.
Reel/Frame 054258/0635 →
CHANGE OF NAME Recorded Aug 24, 2017
From: AOL INC.
To: OATH INC.
Reel/Frame 043672/0369 →
RELEASE OF SECURITY INTEREST IN PATENT RIGHTS -RELEASE OF 030936/0011 Recorded Jul 1, 2015
From: JPMORGAN CHASE BANK, N.A.
To: AOL ADVERTISING INC.; AOL INC.; BUYSIGHT, INC.; MAPQUEST, INC.; PICTELA, INC.
Reel/Frame 036042/0053 →
SECURITY AGREEMENT Recorded Aug 2, 2013
From: AOL INC.; AOL ADVERTISING INC.; BUYSIGHT, INC.; MAPQUEST, INC.; PICTELA, INC.
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 030936/0011 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS Recorded Nov 16, 2010
From: BANK OF AMERICA, N A
To: AOL INC; AOL ADVERTISING INC; GOING INC; LIGHTNINGCAST LLC; MAPQUEST, INC; NETSCAPE COMMUNICATIONS CORPORATION; QUIGO TECHNOLOGIES LLC; SPHERE SOURCE, INC; TACODA LLC; TRUVEO, INC; YEDDA, INC
Reel/Frame 025323/0416 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 31, 2009
From: AOL LLC
To: AOL INC.
Reel/Frame 023720/0309 →
SECURITY AGREEMENT Recorded Dec 14, 2009
From: AOL INC.; AOL ADVERTISING INC.; BEBO, INC.; ICQ LLC; GOING, INC.; LIGHTNINGCAST LLC; MAPQUEST, INC.; NETSCAPE COMMUNICATIONS CORPORATION; QUIGO TECHNOLOGIES LLC; SPHERE SOURCE, INC.; TACODA LLC; TRUVEO, INC.; YEDDA, INC.
To: BANK OF AMERICAN, N.A. AS COLLATERAL AGENT
Reel/Frame 023649/0061 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 4, 2008
From: PANZER, JOHN; RAMAMURTHY, VISHWANATHAN; RAO, MOHAN
To: AOL LLC
Reel/Frame 021046/0564 →