Content distribution network
First Claim
1. A computer-implemented method comprising:
- storing, in a storage device, data identifying a plurality of cache servers, the cache servers storing content items for download by clients;
storing computer-executable code operable to, when executed by the clients, determine whether the cache servers are storing local copies of the content items;
receiving a request from a first one of the clients to download one of the content items;
selecting, by a control server, two or more of the cache servers to provide the requested content item to the first client, based at least on a proximity of the two or more cache servers to the first client;
generating a Web page comprising markup language, the Web page including identifiers of the two or more cache servers and the computer-executable code for causing the first client to process the identifiers included in the markup language of the Web page, wherein processing the identifiers includes sending requests to the two or more cache servers, based at least in part on the identifiers, for an indication of whether the two or more cache servers are storing a local copy of the requested content item; and
downloading the requested content item from one of the two or more cache servers that responds with the indication that a local copy is available;
transmitting the Web page to the first client for execution of the computer-executable code by the first client;
wherein the method is implemented by one or more computing devices of the control server.
1 Assignment
0 Petitions
Accused Products
Abstract
Systems, methods, and computer-readable media provide content items to clients. In one implementation, a system stores data identifying a plurality of cache servers, the cache servers storing the content items for download by a plurality of clients. The system receives a request from a first one of the clients to download one of the content items. The system selects one or more of the cache servers for providing the requested content item to the first client. The system transmits identifiers of the selected one or more cache servers to the first client, and transmits instructions to the first client. The instructions are operable, when executed by the first client, to determine whether the selected one or more cache servers have a local copy of the requested content item. When the first client determines that a first one of the selected one or more cache servers has a local copy of the requested content item, the first client downloads the requested content item from the first selected cache server.
-
Citations
23 Claims
-
1. A computer-implemented method comprising:
-
storing, in a storage device, data identifying a plurality of cache servers, the cache servers storing content items for download by clients; storing computer-executable code operable to, when executed by the clients, determine whether the cache servers are storing local copies of the content items; receiving a request from a first one of the clients to download one of the content items; selecting, by a control server, two or more of the cache servers to provide the requested content item to the first client, based at least on a proximity of the two or more cache servers to the first client; generating a Web page comprising markup language, the Web page including identifiers of the two or more cache servers and the computer-executable code for causing the first client to process the identifiers included in the markup language of the Web page, wherein processing the identifiers includes sending requests to the two or more cache servers, based at least in part on the identifiers, for an indication of whether the two or more cache servers are storing a local copy of the requested content item; and
downloading the requested content item from one of the two or more cache servers that responds with the indication that a local copy is available;transmitting the Web page to the first client for execution of the computer-executable code by the first client; wherein the method is implemented by one or more computing devices of the control server. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A computer-implemented method comprising:
-
storing, in a storage device, data identifying a plurality of cache servers, the cache servers storing content items for download by a plurality of clients; receiving a request from a first one of the clients to download one of the content items; selecting, by a control server, one or more of the cache servers to provide the requested content item to the first client, based at least on a proximity of the one or more cache servers to the first client; transmitting identifiers of the one or more cache servers to the first client, the identifiers provided in markup language; and generating and transmitting computer-executable code to the first client, the computer-executable code generated based at least in part on the identifiers of the one or more cache servers selected by the control server and the computer-executable code being operable, when executed by the first client, to process the identifiers, wherein processing the identifiers includes sending requests to the one or more cache servers for an indication of whether the one or more cache servers have a local copy of the requested content item; and
downloading the requested content item from one of the one or more cache servers that responds with the indication that a local copy is available,wherein the method is implemented by one or more computing devices of the control server. - View Dependent Claims (9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21)
-
-
22. A system comprising:
-
a processor for executing program instructions; and a computer-readable medium storing the program instructions, the program instructions, when executed by the processor, performing a process comprising; storing data identifying a plurality of cache servers, the cache servers storing content items for download by a plurality of clients; receiving a request from a first one of the clients to download one of the content items; selecting, by a control server, one or more of the cache servers for providing the requested content item to the first client, based at least on a proximity of the one or more cache servers to the first client; transmitting identifiers of the one or more cache servers to the first client, the identifiers provided in markup language; and generating and transmitting computer-executable code to the first client, the computer-executable code generated based at least in part on the identifiers of the one or more cache servers selected by the control server and the computer-executable code being operable, when executed by the first client, to process the identifiers, wherein processing the identifiers includes sending requests to the one or more cache servers for an indication of whether the one or more cache servers have a local copy of the requested content item; and
downloading the requested content item from one of the one or more cache servers that responds with the indication that a local copy is available.
-
-
23. A non-transitory computer-readable medium storing program instructions for performing a method executed by a processor, the method comprising steps performed by the processor of:
-
storing data identifying a plurality of cache servers, the cache servers storing content items for download by a plurality of clients; receiving a request from a first one of the clients to download one of the content items; selecting, by a control server, one or more of the cache servers for providing the requested content item to the first client, based at least on a proximity of the one or more cache servers to the first client; transmitting identifiers of the one or more cache servers to the first client, the identifiers provided in markup language; and generating and transmitting computer-executable code to the first client, the computer-executable code generated based at least in part on the identifiers of the one or more cache servers selected by the control server and the computer-executable code being operable, when executed by the first client, to process the identifiers, wherein processing the identifiers includes sending requests to the one or more cache servers for an indication of whether the one or more cache servers have a local copy of the requested content item; and
downloading the requested content item from one of the one or more cache servers that responds with the indication that a local copy is available.
-
Specification