1. A method of communicating between two or more computing devices, the method comprising: receiving, by a first computing device, a request for content, from a requesting device, which includes a plurality of items, the plurality of items comprising an item cached by the first computing device and another item that is not cached by the first computing device; processing the request for content, by the first computing device, to determine which of the plurality of items within the request are cached by the first computing device, the determination comprising: computing one or more cache keys, wherein the cache keys are identifiers associated with the items within the request; upon determining that one or more of the requested items are not cached by the first computing device, then sending, by the first computing device to a second computing device, the request and one or more identifiers associated with the one or more cached items, respectively; receiving, by the second device, the request and the one or more identifiers associated with the one or more cached items; generating, by the second computing device, content based on the request and the one or more identifiers, wherein the one or more identifiers are used by the second computing device to determine content that is not to be included in the generated content, the request being used by the second computing device to determine content to be included in the generated content; sending, by the second computing device to the first computing device, the generated content; receiving, by the first computing device from the second computing device, content generated by the second computing device based on the request and the one or more identifiers; combining, by the first computing device, the cached item and the generated content, and sending, by the first computing device, the combined content to the requesting device.