我将共享主机与CDN Cloudflare结合使用。而且,我的网站肯定比以前使用CDN更快了。然而,我想更好地了解CDN和我的托管服务是如何交互的。例如,假设我在网页上有一个图像,以及一个外部javascript文件。我知道CDN会“缓存”这些资源。但是,这是不是意味着CDN不是从我的共享主机传输图像/javascript(这将花费我每月传输的字节数),而是实质上给我“免费”传输这些资源?
发布于 2013-07-22 13:49:59
是的,如果您的CDN服务提供商不收取任何数据传输费(例如免费级别的CloudFlare),那么您是对的。
基本上,发生的事情是用户向您网站中的资产发出请求,如果该项目已经缓存在您的CDN提供商的边缘节点中,则该项目将由他们提供服务。只有当资产不可从缓存中获得或过期时,您的服务器才会获得命中。
但这种免费是有代价的,没有免费的饭,想象一下,如果只是让每个人都有一顿免费的饭,CloudFlare是如何生存的。
大部分免费服务没有性能保障,缓存命中率可能不会一直很高,CDN提供商可能只会分配有限的内存来存储免费客户的缓存,因此您的资产在缓存中不可用的概率相对较高。
更糟糕的是,如果内容在缓存中不可用,那么您的CDN提供商将需要将文件提取到源站。现在,最终用户对您的网页的直接请求变成了两个间接请求,这显然会增加加载时间。
https://stackoverflow.com/questions/17726113
复制相似问题