客服QQ:QQ61166066 QQ9558206 Phone:0755-36310055 18682000301 Fax:0755-36310055 Email:liujin@68site.com
网络缓存解决根本问题?
既然影响网络速度的原因是由距离和光速引起,那么加速Web访问的唯一途径就是缩短客户端与网站之间的距离。通过将用户频繁访问的页面和对象存放在离用户更近的地方,才能减少光速引入的延时,同时由于减少了路由中的环节,也相应地减少了路由器、防火墙和代理等引入的延时。
传统的解决办法是建立镜像服务器来达到缩短距离的目的。但这个办法存在很大的不足,对于某个站点而言,不可能在离每个用户群较近的地方都建立镜像站点,若对大多数网站都用这样的办法就更不经济,同时管理和维护镜像站点是一项非常困难的工作。
网络缓存是一种降低Internet流量和提高终端用户响应时间的新兴网络技术。它的观念来自于计算机和网络的其他领域,如目前流行的Intel架构的CPU中就存在缓存,用于提高内存存取的速度;各种操作系统在进行磁盘存取时也会利用缓存来提高速度;分布式文件系统通常也通过缓存来提高客户机和服务器之间的速度。
1.缓存的类型
网络缓存可以在客户端,也可以在网络上,由此我们将缓存分为两类:浏览器缓存和代理缓存。
几乎目前所有的浏览器都有一个内置的缓存,它们通常利用客户端本地的内存和硬盘来完成缓存工作,同时允许用户对缓存的内容大小作控制。浏览器缓存是网络缓存的一个极端的情况,因为缓存设在客户机本地。通常一个客户端只有一个用户或几个共享计算机用户,浏览器缓存要求的硬盘空间通常在5MB到50MB的范围内。但是浏览器缓存在用户之间难以共享,不同客户端的缓存无法实现交流,因而缓存的内容与效果相当有限。
代理缓存则是一种独立的应用层网络服务,它更像E-mail、Web、DNS等服务。许多用户不仅可以共享缓存,而且可以同时访问缓存中的内容。企业级代理缓存一般需要配置高端的处理器和存储系统,采用专用的软件,要求的硬盘空间在5MB到50GB左右,内存为64MB到512MB。
代理处于客户端与网站服务器之间,在某些情况下,这种连接是不允许的,如网站在防火墙内,这时客户端必须与代理建立TCP连接,然后由代理建立与网站服务器的TCP连接。代理在服务器和客户端之间起到了数据接力的作用。代理发出的HTTP请求与一般的HTTP请求有细小的不同,主要在于它包含了完整的URL,而不只是URL的路径。
2.代理缓存的工作原理
当代理缓存收到客户端的请求时,它首先检查所请求的内容是否已经被缓存。如果没有找到,缓存必须以客户端的名义转发请求,并在收到服务器发出的文件时,将它以一定的形式保存在本地硬盘,并将其发送给客户端。
如果客户端请求的内容已被缓存,还存在两种可能:其一,缓存的内容已经过时,即缓存中保存的内容超过了预先设定的时限,或网站服务器的网页已经更新,这时缓存会要求原服务器验证缓存中的内容,要么更新内容,要么返回“未修改”的消息;其二,缓存的内容是新的,即与原网站的内容保持同步,此时称为缓存命中,这时缓存会立即将已保存的内容送给客户端。
在客户端的请求没有命中时,反而增加了缓存存储和转发的处理时间。在这种情况下,代理缓存是否仍有意义呢?实际上,代理缓存能够同时与网站服务器建立多个并发的TCP/IP连接,并行获取网站上的内容。缓存的存在从整体上降低了对网站访问的次数,也就降低了单位时间内服务器端的排队数目,因而这时并发连接的排队延时要小得多。优秀的缓存甚至能实现对网页内相关链接内容的预取以加快连接的速度。
3.代理缓存的策略
当原服务器的文件修改或被删除后,缓存又如何知道它保存的拷贝已经作废呢?HTTP协议为缓存服务提供了基本的支持,它使缓存能向原服务器查询,某个文件是否更改,如果缓存的拷贝过时则进行有条件下载。仅当原服务器文件超过指定的日期时,才会发出新的文件。
但是这些询问操作对网络服务器造成的负载几乎和获取该文件差不多,因此不可能在客户端向缓存发起请求时都执行这样的操作。HTTP协议使得服务器可以有选择地为每个文档指定生存时间,即清楚地指出某个文件的有效生命周期,生存时间很短即意味着“不要对其缓存”。拷贝的保留时间可以是固定的,也可以是通过这个文件的大小、来源、生存时间或内容计算出来的。