A Detailed Guide to Content Delivery Networks