Posted on 2005-12-07 13:10
inwind 阅读(337)
评论(0) 编辑 收藏 引用 所属分类:
搜索引擎
Google网页加速器的工作原理,其实很简单:Proxy + 缓存。
1. 本地化的Proxy + 缓存
当运行了 google 的网页加速器,本机会启动一个httpd的服务,端口是9100 :
http://127.0.0.1:9100
这个服务实际上是一个本地化的Proxy+缓存,就是所有的 http 的请求都是通过这里走的。那么为什么能够加速呢?
缓存。当你第一次访问一个网页的时候,相当多的图片,静态文字全部的存储下来,然后当你再次访问的时候,就直接从缓存里调出来,因此大大加快了访问速度。
我这里做了一个有趣的试验:
访问我自己的blog一个日志(http://blog.wespoke.com/archives/000907.html)的日志记录:
adsl-69-154-77-102.dsl.rcsntx.swbell.net - - [09/May/2005:12:34:38
+0800] "GET /archives/000907.html HTTP/1.1" 304 -
刷新这个网页,Apache的记录仍然是 304。表明没有传输内容,紧紧验证了
expired的信息。
touch archives/000907.html (改变这个文档的时间标记)
再次刷新,这次不一样了:
adsl-69-154-77-102.dsl.rcsntx.swbell.net - - [09/May/2005:12:35:28
+0800] "GET /archives/000907.html HTTP/1.1" 200 10319
这次是返回了200,并传输了10319个字节。
这个就是工作的原理,在第一种的情况下,节省了10319个字节的传输。
当然,这也是所有的缓存proxy的设计原则。
2. Google 的缓存+路由
当我发现我访问的日志上记录的IP和我本地的IP不一样的时候,看来Google 自己也还是有缓存服务器的,就是说当我们请求一个网页时,如果联接非常的慢,google会让这个请求通过google的缓存服务器,同时改变路由。这就是为什么看到的IP不是自己机器的IP了。
由此看来,Google的网络加速器实际上是一个个人的小型Proxy缓存服务器+Google帝国的一个格点状的Proxy缓存服务器系统构成并有效的来管理这些缓存,并非什么特别的技术,而是将大家忽视了多年的一些基本的概念从新应用了起来。
3. 看看这里就更加明白一些:http://race.google/http://www.wespoke.com,注意,必须启动了加速器后才能连接,因为google Web Accelerator讲这个域名解释为本机并采用Iframe显示。您可以将http://www.wespoke.com替换成您想要到达的网页,看看有没有加速?
关于加速的原理,你应该了解expired模块。
http://httpd.apache.org/docs/mod/mod_expires.html