使用超市购买牛奶来解释网络缓存

发布者:上海IT外包来源:http://www.lanmon.net点击数:818

如果您曾在超市购买牛奶,您可以了解服务器和浏览器端的缓存。
如果您是互联网的忠实用户(您可能是),您可以一次又一次地受益于缓存。但是,您可能不知道它(缓存)何时或如何在幕后发挥其魔力。
从开发人员的角度来看,缓存使构建高性能Web应用程序和Web服务器变得更加容易。开发人员可以实施缓存协议,使其工作更轻松,而不是不断优化被数千个请求淹没的服务器。
由于缓存可能会在加载页面1秒到2秒之间产生影响,因此会让您感觉有点..不足。但是,如果要处理大量用户,则必须这样做。
在过去的Web应用程序中使用缓存之后,我意识到必须有更好的方法来解释它,而不仅仅是遍历术语。我注意到它非常适合从农场到冰箱的牛奶路径,所以我认为这将是一个更好的解释方法。
要理解本指南,您只需要了解Web服务器的基础知识。让我们一起学习吧!
如果没有缓存,互联网会是什么样子?
在我们进入缓存之前,让我们考虑一下没有缓存的互联网会是什么样子。想象一下,生活在17或19世纪的农村地区。你拥有一个农场,没有制冷设备。你的农场里有几头奶牛,但他们的牛奶几乎不值钱,因为它会很快恶化。
有些团体仍然无法使用制冷设备。他们要么直接从奶牛的乳房中倒入原料奶,要么将牛奶与谷物混合,让它发酵。这真有趣。
无论如何,你想把你的牛奶卖给你村里的其他人。但是,他们喝牛奶的时间非常有限。假设你的奶牛每天产生一加仑牛奶。但是,如果你的农场里有太多人出现寻找牛奶的话,你需要让一些人先回家让他们等到第二天。
使用超市购买牛奶来解释网络缓存
此外,您甚至不能考虑添加更多的奶牛并扩展您的运营,因为您的分配范围有限。你有一些明确的限制,只有你村里的其他成员可以买你的牛奶。
使用超市购买牛奶来解释网络缓存
如果没有缓存,您将受到服务器计算能力的限制。缓存用于加载静态资源,例如:图像。CSS
静态HTML文件
JavaScript文件
默认情况下,服务器必须为每个传入请求提交新响应。但是,加载页面的请求实际上可能意味着来自上述每个类别的4个单独请求——。当您考虑更大的图像文件时,您的服务器可能会被全球用户所淹没。然后,用户将在等待页面加载时遇到缓慢的加载时间。
使用超市购买牛奶来解释网络缓存
理想情况下,您希望通过存储对常见请求的响应来减轻对服务器的需求。您的服务器不需要处理每个新的单个请求,但您的缓存可以提供即时响应。您可以随时支付更多服务器费用,但这可能会导致无法控制的成本。
什么是服务器端缓存?
返回我们的农场计划。了解什么使一个成功的奶牛场更容易操作?
一家超市,带冷藏!
通过这种方式,人们不需要出现在您的农场并立即消费牛奶。您将能够保持几周的安全。
超市消除了农场的压力,因为预计不会实时生产奶牛。超市将满足这一需求。你只需每天保持奶牛的生产力。更好的是,周围所有村庄的居民现在可以从农场购买牛奶,因为牛奶总是可以在冰箱里买到。
使用超市购买牛奶来解释网络缓存
使用超市购买牛奶来解释网络缓存
就像超市一样,服务器端缓存处理热请求并更快,更可靠地提供内容。
在上图中,我使用了术语缓存代理。高速缓存代理是存储用于响应公共请求的静态文件的服务器。缓存代理拦截常见请求并快速传递响应。它可以防止这些请求对您的主Web服务器施加压力。
你可能有很多问题,例如,
是什么决定了“热门”的要求?
代理响应缓存多长时间?
它也像超市里的牛奶。超市经理需要决定他们将牛奶保留多长时间然后扔掉。高速缓存代理通过高速缓存命中率(即高速缓存服务器所服务的内容的百分比)来衡量其成功。
什么是内容分发网络?
到目前为止,有一家杂货店出售你的牛奶。虽然这是向前迈出的一大步,但仍无法向当地商店以外的人送牛奶。如果要扩展操作,则需要添加更多商店。
所以,假设你开始向更多的超市分发牛奶。现在,您可以在更大的地理区域内与您的客户会面。这类似于内容传送网络或cdn。 Cdn是位于世界各地的一系列代理服务器(如上所述)。作为最终用户,您可能会觉得高速互联网允许大多数网站快速加载。但是,这只是因为他们使用cdn来快速传输静态文件!
如果您位于英国,并且您正在尝试加载在Virginia服务器中缓存的文件,则会遇到一些延迟,因为原始信号只能在数千英里内传输。英国的本地缓存代理将允许站点加载更快。
使用超市购买牛奶来解释网络缓存
使用超市购买牛奶来解释网络缓存
因此,您的服务器可以将静态文件的副本发送到cdn网络中的每个代理服务器,并且它们可以处理本地请求,直到它们不再是“新”。一些常见的cdn提供商包括rackspace,akamai和amazon web服务。
那么浏览器缓存怎么样?
现在,全国各地(或全世界)的人都可以从您的农场带回冷牛奶。只有一个问题 - 他们无法将它存放在自己的家中。在您的顾客购买牛奶后,他们需要快速饮用,然后回到杂货店购买更多的牛奶。因此,该系统仍然不能很好地为客户服务。
解决办法是什么?一台冰箱!
使用冰箱,您可以将牛奶存放在当地,避免返回超市。在缓存术语中,我们讨论的是存储静态资产的完全独立的位置,因为它位于客户端,或者与浏览器位于同一台计算机上。我们的代理服务器位于远程位置。
这非常适合您经常访问的网站或亚马逊等网站。这也有利于他们的服务器成本,因为它们可以减少需要处理的请求数量。
使用超市购买牛奶来解释网络缓存使用超市购买牛奶来解释网络缓存
有一点需要注意 - 我们并不是说牛奶神奇地到达你的冰箱!您仍然需要发出初始请求才能到达服务器或代理服务器。之后,您可以在本地缓存一些文件。
您的浏览器如何知道何时从服务器请求新文件?否则,您将永远不会遇到这些本地文件的更新版本。
好吧,就像牛奶生产商在他们的牛奶包装上贴了一个日期一样,服务器会在http响应头上添加一个标识符。实际上有4个独立的http缓存系统。上面显示的场景与“到期日期”方法非常相似。其他方法仍然需要浏览器在发送缓存文件之前检查服务器。
使用超市购买牛奶来解释网络缓存
何时开始使用缓存
假设您正在构建您的第一个Web应用程序。在拥有数千个用户之前,您可能不需要担心缓存协议,因为服务器成本仍然很低。但是,在进行扩展时,如果希望快速加载应用程序,则需要实现缓存。例如,heroku是部署第一个Web应用程序的绝佳工具。但是,它要求您使用单独的服务来实现缓存,例如amazon的cloudfront或cloudflare。这需要更多的时间来学习。
在浏览器端,当您尝试使用新的静态资源重新加载页面时,您可能经历过缓存,但页面根本不会更改。无论您刷新页面多少次,都不会有任何变化。
这通常是因为浏览器端的一些缓存协议。要绕过浏览器的缓存并从服务器请求新资源,您可以在mac上使用cmd + shift + r或在pc上使用ctrl + shift + r。
IT外包
>
400-635-8089
立即
咨询
电话咨询
服务热线
400-635-8089
微信咨询
微信咨询
微信咨询
公众号
公众号
公众号
返回顶部