A Content Delivery Network (CDN) is a globally distributed network of web servers or Points of Presence (PoP) whose purpose is to provide faster content delivery.
The content is replicated and stored throughout the CDN so the user can access the data that is stored at a location that is geographically closest to the user. This is different (and more efficient) than the traditional method of storing content on just one, central server.
A client accesses a copy of the data near to the client, as opposed to all clients accessing the same central server, in order to avoid bottlenecks near that server.
High content loading speed = positive User Experience. If all data is located on a central server, the User Experience is negatively affected by limited loading speed. The greater the distance between two objects in communication (in this case, the user and the server), the longer it takes for the content to reach any of these objects.
To put it more simply, the purpose of a CDN is to improve user experience and provide it with a more efficient network resource utilization. Content providers such as media companies and e-commerce vendors pay CDN operators to deliver their content to their audience, that is, end-users. In turn, a CDN pays ISPs, carriers and network operators for hosting servers in their data centers. There are two key mechanisms that explain how CDN functions:
- Keep important content distributed to multiple, globally distributed data centers so it is closer to end users, and thus faster to download.
- Use server optimizations based on content type to get that content to the user most efficiently.
Other than better performance, CDNs also offload the traffic served directly from the content provider’s origin infrastructure, resulting in possible cost savings for the content provider. They are also effective against DDoS attacks, since they provide their own large distributed server infrastructure to absorb the volume of the attack, but we’ll explain that later.
Location is key for content delivery speed. The farther the user is from the server where the content is stored, the longer it will take for the content to reach the user, and this in turn negatively affects User Experience.