人们每天接触的大多数网站和应用程序都没有一个物理位置,但网站或应用程序上的内容(如图像、文本和视频)仍然需要通过电线传输到整个世界。它的工作原理是这样的:如果网站的服务器位于纽约市,那么波士顿的人们将比旧金山或东京的人们更快地获取内容。客户离公司的数据中心越远,网站或应用程序加载越慢——造成不一致和令人沮丧的用户体验。
任何长度的滞后时间都会让习惯于实时数字体验的网络和移动用户感到沮丧。根据LoadStorm:
25% 的用户会放弃加载时间超过 4 秒的网站。
74% 的用户会放弃加载时间超过 5 秒的移动网站。
46% 的用户不会返回性能不佳的网站。
这个问题可以通过内容交付网络 (CDN) 解决。
什么是CDN?
一个CDN是基于其地理位置更迅速和有效地提供从您的网站或移动应用内容的人,一个办法。CDN由遍布世界各地的服务器网络(“存在点”或 POP)组成。离用户最近的CDN服务器被称为“边缘服务器”——当人们从通过 CDN 提供服务的网站请求内容时,他们会连接到最近的边缘服务器,以确保最佳的在线体验。
想象一下,您在旧金山,并且在 5300 英里外的伦敦的服务器上请求了图像。发送请求和接收响应通常需要大约 300 毫秒。如果您要从距离旧金山约 50 英里的圣何塞的服务器请求相同的图像,则发送请求并获得响应将需要大约 10 毫秒的时间。这比第一种情况好 30 倍,但因为我们以毫秒为单位说话,所以差异可能无法察觉。然而,当人们考虑到一个典型的网页可以包含分布在 30 个请求中的超过 2 兆字节的信息时,这种几乎察觉不到的差异是巨大的。因为浏览器只发出少量并发请求,每个请求可能涉及到服务器的多次往返,这些毫秒加起来就是很多秒,使网站变慢。
CDN是如何工作的?
为了避免因慢速服务造成用户不满意,CDN将内容移近用户,以减少延迟并改善用户体验。从理论上讲,这是整洁、优雅且不言自明的。然而,在实践中,存在一些非常棘手的技术挑战。
首先,为了减少任何特定用户的延迟,CDN必须有一个内容缓存服务器——一个缓存——离他们很近。不幸的是,为每个可能的互联网用户都拥有一个附近的缓存是不可行的。相反,我们将缓存组织到 PoP 中,将它们分布在大的地理区域(欧洲、美国、亚洲等),然后将它们放置在这些区域内的主要人口中心。
接下来,给定单个用户的请求,CDN必须将其定向到最近的 POP。大多数 CDN 通过利用一种称为 GeoIP 的技术来做到这一点。GeoIP 可以被认为是一个将 IP 地址映射到地理区域(国家、城市等)的大型查找表。在处理请求时,CDN将引用该表并将用户的流量定向到最近的可用服务器。
将内容缓存到CDN
您可以在CDN上缓存(临时存储)您的内容,以便将其从边缘交付给最终用户的速度比必须从源头一直交付要快得多。如果您使用CDN,这意味着如果有人试图从您的网站或移动应用程序访问内容,那么该人对内容的请求只需前往附近的 POP 并返回,而不是一直到达公司的源服务器并返回.
可以将缓存视为大型键值存储。当请求进来时,缓存的工作是确定用户请求什么、定位数据并将其发送回用户。 有许多请求信息可用于确定要提供的内容。这可以包括域名、路径、查询参数甚至标题等内容。缓存采用多级查找表,使用优化算法在最短的时间内找到正确的内容。CDN还会不断清除(删除和更新)内容,以便提供最新的相关内容。清除也称为内容失效,允许企业在必要时更新内容。