With the rapid development of network applications, the Internet has evolved from a content-based communication infrastructure to a social-based community network. The emerging applications require the Internet to preserve not only the existing advantages of simplicity and scalability, but also demand varying amounts of capability, availability, reliability, flexibility, and differentiated quality of service. Therefore, it is of paramount importance to bridge the gap between these applications and the IP networks which were originally designed and developed for supporting one-size-fits-all functionality. An efficient solution is to build a virtual network on top of a generic IP transport layer in order to provide additional functionality and flexibility. The content delivery networks technique is one of the successful virtual networks rapidly developed over the last decade with the specific advantage of optimizing the Internet. Nowadays, the CDN has become one of the most important parts of the Internet architecture for content distribution. In this article we highlight the innovative technologies in CDNs and present their evolution triggered by ever newer emerging applications. By presenting in-depth discussion about the architecture, challenges, and applications of CDNs, we demonstrate their importance for the future Internet.