1. A method of caching data in a communication network, the method comprising: partitioning, at an originating server of the communication network, a data resource into multiple data partitions; assigning, at the originating server, a unique address to each of the data partitions; and distributing, using at least one processor of a machine, each of the data partitions to at least one of a plurality of proxy servers based on the unique addresses, wherein each of the proxy servers is configured to: receive a read request for one of the data partitions stored at the proxy server; and transmit the one of the data partitions to a source of the read request in response to the read request.