Caching HTTP request and response streams
First Claim
Patent Images
1. A method of providing content to a plurality of clients comprising:
- defining, at a server, a web request object of a web application framework;
overriding, at the server, the web request object with a cacheable web request object, said cacheable web request object derived from the web request object;
receiving, at the server, a request from a particular client of the plurality of clients for a web page containing aggregated content, said web page including at least one content item;
parsing the web page request from the particular client into at least one request for a requested content item from the cacheable web request object;
determining, via the cacheable web request object, whether retrieval of the requested content item from one or more content providers is required, wherein the determination that the requested content item requires retrieval comprises at least one of the following;
determining the content item is not cacheable;
determining the content item is not present in a cache accessible to the server; and
,determining the content item is cacheable and stored in a cache accessible to the server and is not valid;
retrieving, via the cacheable web request object, any content items requiring retrieval from one or more content providers;
storing, in the cache, each retrieved content item as retrieved from the content provider that is cacheable and valid;
maintaining the content item stored in the cache when the content item is valid as indicated by a web header collection object and deleting the content item stored in the cache when the content item is no longer valid as indicated by the web header collection object, said web header collection object storing a header of the content item including information indicating whether the content item is valid;
exposing the retrieved content item stored in the cache as a stream such that the server does not differentiate between a content item retrieved from the cache and a content item retrieved from the content provider;
retrieving at least one cached content item corresponding to the at least one request for a content item from the cacheable web request object;
aggregating the results yielded by the cacheable web request object from the content item requests that were parsed from the web page request; and
providing the aggregated content items to the particular client as the web page.
3 Assignments
0 Petitions
Accused Products
Abstract
A client requests a web page from a server including aggregated content comprising a plurality of content items from a plurality of content providers. The server provides content items to the client from a cache accessible to the server if any of the content items are stored in the cache, and requests any remaining content items from their respective content providers. The server receives responses from the content providers and stores any cacheable responses (i.e., content items) in the cache. Aspects of the invention apply to any content request from a client, for example, updating a client'"'"'s widget with a content item.
15 Citations
13 Claims
-
1. A method of providing content to a plurality of clients comprising:
-
defining, at a server, a web request object of a web application framework; overriding, at the server, the web request object with a cacheable web request object, said cacheable web request object derived from the web request object; receiving, at the server, a request from a particular client of the plurality of clients for a web page containing aggregated content, said web page including at least one content item; parsing the web page request from the particular client into at least one request for a requested content item from the cacheable web request object; determining, via the cacheable web request object, whether retrieval of the requested content item from one or more content providers is required, wherein the determination that the requested content item requires retrieval comprises at least one of the following; determining the content item is not cacheable; determining the content item is not present in a cache accessible to the server; and
,determining the content item is cacheable and stored in a cache accessible to the server and is not valid; retrieving, via the cacheable web request object, any content items requiring retrieval from one or more content providers; storing, in the cache, each retrieved content item as retrieved from the content provider that is cacheable and valid; maintaining the content item stored in the cache when the content item is valid as indicated by a web header collection object and deleting the content item stored in the cache when the content item is no longer valid as indicated by the web header collection object, said web header collection object storing a header of the content item including information indicating whether the content item is valid; exposing the retrieved content item stored in the cache as a stream such that the server does not differentiate between a content item retrieved from the cache and a content item retrieved from the content provider; retrieving at least one cached content item corresponding to the at least one request for a content item from the cacheable web request object; aggregating the results yielded by the cacheable web request object from the content item requests that were parsed from the web page request; and providing the aggregated content items to the particular client as the web page. - View Dependent Claims (2, 3, 4)
-
-
5. A server comprising one or more computing devices and one or more computer readable storage media having computer-executable components stored thereon that, when executed, retrieve aggregated content in response to a request from a particular client of a plurality of clients, said components comprising:
-
a parser for receiving at the server a request for a web page, said web page having aggregated content including at least one content item, and for parsing the web page request into at least one request for a content item; a cache accessible to the server for storing a plurality of content items; a cacheable web request object for receiving the at least one request from the parser; a cache lookup responsive to a request for a content item from the cacheable web request object for determining whether the content item is to be retrieved from the cache or retrieved from a content item provider, and for sending a request for retrieval of the content item as a function of said determining, wherein data related by a web header collection object of the content item indicates whether the cache lookup should continue to maintain the content item in the cache as valid; an aggregator for receiving and aggregating the content items to generate the web page requested by the client, wherein the cache lookup provides the copy of the content item retrieved from the cache to the aggregator; a web request object responsive to said request for external retrieval of a content item from the cache lookup for retrieving a copy of the content item from a content provider of the content item, wherein the cacheable web request object is derived from and overrides said web request object; and a cache entry component for receiving a copy of a content item from the web request object and providing the received copy of the content item to the cache for storage, wherein the cache entry component stores the copy of the content item in the cache by storing a data stream of the content item in the cache as a memory stream and storing a header of the content item in the web header collection object, and wherein the cache lookup maintains the copy of the cached content item by analyzing data related by the web header collection object, and retrieves the content item from the cache by exposing the content item as a stream such that the server does not differentiate between a content item retrieved from the cache and a content item retrieved from the content provider. - View Dependent Claims (6, 7, 8, 9, 10, 11)
-
-
12. A method of responding to hypertext transfer protocol (HTTP) requests from a plurality of clients, each HTTP request requesting content via a web request object and a web response object associated therewith, said method comprising:
-
extending, at a server, the web request object to create a cacheable web request object, said cacheable web request object implementing a cache lookup policy; overriding the web request object with the created cacheable web request object in response to receiving the HTTP request from a particular client of the plurality of clients at a server, said cacheable web request object derived from the web request object; determining whether the HTTP request is to be retrieved from the cache or retrieved from a content item provider as a function of the cache lookup policy based on determinations including locating a response in a cache and determining the response is valid, the determinations being related to an examination of data representative of the HTTP request stored in the cache; maintaining the validated located response in the cache for a period of validity indicated by data representative of the HTTP request in a header thereof; providing the validated located response in the cache to the particular client in response to the received HTTP request when the response is located in the cache; forwarding, from the cache lookup policy to the web request object, the received HTTP request for sending, by the web request object, a web HTTP request when the response is not located in the cache; and receiving a web HTTP response from a content provider and receiving content items associated with the content provider in response to the web HTTP request from the web request object, and providing the web HTTP response from the content provider to the particular client in response to the received HTTP request, said receiving further comprising; determining, by a cache entry policy of the server, whether the web HTTP response from the content provider is to be stored in the cache, based on determinations, including validity determinations; storing, as a function of said determining a data stream of the web HTTP response in the cache as a memory stream, storing the content items received from the content provider in the cache and deleting not valid content items from the cache, and storing a HTTP header of the web HTTP response in a web header collection object representative of the HTTP request; aggregating the valid content items in the cache with the content items received from the content provider; associating the aggregated content items to the HTTP response stored in the cache; and exposing the web HTTP response as a stream such that the server does not differentiate between the web HTTP response retrieved from the cache and the web HTTP response retrieved from the content provider. - View Dependent Claims (13)
-
Specification