Content Delivery Network (CDN) is network of geographically distributed multiple data centers with aim to serve end-user with higher availability and performance. Contents are served to end-user user from the nearest available data center.
Apart from this, CDNs also offloads the traffic served directly from the content provider’s origin infrastructure, thereby providing other secondary but important benefits.
CDNs serve a large fraction of the static Internet content today, including web objects (static HTMLs, images, css and scripts), downloadable objects (media files, software, documents) and live/on-demand streaming media.
- Higher availability due to multiplicity of data centers apart from actual content provider’s origin infrastructure.
- Higher Performance since requests is entertained from nearest available data center.
- Cost saving for content provider as he needs not to care of all this distributed infrastructure & incoming traffic.
- Higher degree of protection from DoS attacks since large distributed server infrastructure absorbs the traffic.
When a file/resource is requested for the first time it will first be served from the central data center (content originator) and then cached at the edge locations (globally distributed data centers nearest to the requesting user). All subsequent requests will be served from the cache of the edge location until the TTL (Time-To-Live) value has expired. The CDN will communicate with the originating server to deliver any content that has not been previously cached or expired. The process of bouncing through a CDN is nearly transparent to the user.
There are several CDN’s that major websites use e.g. Akamai, Mirror Image, Limelight, EdgeCast Networks, etc. and if you are looking for some free one then check CloudFlare.