云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

微软云_全球高考txt百度云_好用

小七 141 0

缓存不可缓存:CloudFlare的Railgun

缓存不可缓存:CloudFlare's Railgun

cloudgun和cloudrail最近向客户推出了cloudgun服务。Railgun是一款web优化软件,旨在加速无法缓存的内容的传输。使用CloudFlare的一个主要优势是,可缓存内容(如图像、JavaScript、CSS和HTML)都由CloudFlare缓存,并从我们在世界各地的数据中心提供。因为CloudFlare拥有覆盖全球的数据中心,所以缓存的内容无论在哪里都可以快速地传递给网络冲浪者(并克服了延迟问题)。但只有大约66%的内容是可缓存的。另外34%必须从真正的原始网络服务器获得。Railgun通过使用一种能够缓存动态生成的或个性化的web页面的方案来克服这个问题,从而大大减少了使用的带宽并提高了下载时间。

缓存不可缓存:CloudFlare's Railgun

图片来源:Dave Fayram缓存不可缓存的Railgun的工作原理是认识到不可缓存的网页不会很快变化。例如,我捕捉了一次CNN主页的HTML,5分钟后又一次,一小时后又一次。页面大小为92516,5分钟后仍为92516,一小时后为93727。CNN将这个页面的缓存设置为60秒。一分钟后,有必要再次下载整个页面。但看看网页本身并没有太大变化。事实上,版本之间的变化大约是100k字节,这是CNN主页之间每隔5分钟的一个小的二进制差异的屏幕截图。黄色字节已更改,其余字节没有:

缓存不可缓存:CloudFlare's Railgun

CloudFlare的实验显示,在整个网络上都有类似的变化值。例如,reddit.com网站五分钟内变化约2.15%,一小时内变化3.16%。《纽约时报》主页在五分钟内的变化率约为0.6%,在一小时内的变化率为3%。英国广播公司的新闻在五分钟内变化约0.4%,在一小时内变化2%。尽管动态web不可缓存,但它的变化也不快。这意味着,在不同的页面版本之间,每时每刻只有一个小的变化。Railgun利用这一事实来实现非常高的压缩率。这与视频压缩寻找帧间变化的方式非常相似;Railgun查找从下载到下载的页面上的更改。技术细节Railgun由两个组件组成:发送方和监听器。发送器安装在全球每个CloudFlare数据中心。侦听器是高级客户在其网络上安装的软件组件。发送方和侦听器建立一个由TLS保护的永久TCP连接。此TCP连接用于Railgun协议。它允许多个请求异步地跨一个二进制链接运行。对于web客户端来说,Railgun系统看起来像一个代理服务器,但它不是一个服务器,而是一个具有特殊属性的广域链接。其中一个属性是,它通过同步页面版本对不可缓存的内容执行压缩。Railgun链接的每一端都会跟踪所请求的网页的最新版本。当Railgun已经看到一个页面的新请求进来时,只会通过链接发送更改。侦听器组件向真实的原始web服务器发出一个HTTP请求,以获取不可缓存的页面,与存储的版本进行比较,并跨差异发送。然后发送方根据缓存和另一方发送的差异重构页面。

缓存不可缓存:CloudFlare's Railgun

把门从标准的Gzip吹走当然,今天的网页使用压缩技术。最常见的技术是gzip页面本身。CNN实际上是这样做的,它发送23529字节的gzip压缩数据,解压后这些数据就变成了92516字节的页面(因此页面被压缩到原始大小的25.25%)。谷歌还提出了一个有点复杂的基于词典的方案,称为SDCH,但尚未广泛应用。但是轨道炮的压缩技术更进一步。上面页面的版本1和版本2之间的压缩(间隔5分钟)只会发送266字节的差异数据(压缩到原始页面大小的0.29%)。一小时的差异(上面的版本2到3)是2885字节(压缩到原始页面大小的3%)。显然,轨道炮的压缩比gzip要大得多。对于经常访问的页面,delta通常很小,以至于可以放在一个TCP包中,而且由于Railgun的两个部分之间的连接保持活跃,因此TCP连接时间和启动慢的问题就被消除了。Railgun意味着对于高级CloudFlare客户,整个web变得(几乎完全)可缓存。了解有关Railgun的更多信息或升级到CloudFlare企业或企业帐户,以便为您的站点启用它。