Posted on 2005-12-07 13:10
inwind 閱讀(368)
評(píng)論(0) 編輯 收藏 引用 所屬分類(lèi):
搜索引擎
Google網(wǎng)頁(yè)加速器的工作原理,其實(shí)很簡(jiǎn)單:Proxy + 緩存。
1. 本地化的Proxy + 緩存
當(dāng)運(yùn)行了 google 的網(wǎng)頁(yè)加速器,本機(jī)會(huì)啟動(dòng)一個(gè)httpd的服務(wù),端口是9100 :
http://127.0.0.1:9100
這個(gè)服務(wù)實(shí)際上是一個(gè)本地化的Proxy+緩存,就是所有的 http 的請(qǐng)求都是通過(guò)這里走的。那么為什么能夠加速呢?
緩存。當(dāng)你第一次訪問(wèn)一個(gè)網(wǎng)頁(yè)的時(shí)候,相當(dāng)多的圖片,靜態(tài)文字全部的存儲(chǔ)下來(lái),然后當(dāng)你再次訪問(wèn)的時(shí)候,就直接從緩存里調(diào)出來(lái),因此大大加快了訪問(wèn)速度。
我這里做了一個(gè)有趣的試驗(yàn):
訪問(wèn)我自己的blog一個(gè)日志(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 -
刷新這個(gè)網(wǎng)頁(yè),Apache的記錄仍然是 304。表明沒(méi)有傳輸內(nèi)容,緊緊驗(yàn)證了
expired的信息。
touch archives/000907.html (改變這個(gè)文檔的時(shí)間標(biāo)記)
再次刷新,這次不一樣了:
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個(gè)字節(jié)。
這個(gè)就是工作的原理,在第一種的情況下,節(jié)省了10319個(gè)字節(jié)的傳輸。
當(dāng)然,這也是所有的緩存proxy的設(shè)計(jì)原則。
2. Google 的緩存+路由
當(dāng)我發(fā)現(xiàn)我訪問(wèn)的日志上記錄的IP和我本地的IP不一樣的時(shí)候,看來(lái)Google 自己也還是有緩存服務(wù)器的,就是說(shuō)當(dāng)我們請(qǐng)求一個(gè)網(wǎng)頁(yè)時(shí),如果聯(lián)接非常的慢,google會(huì)讓這個(gè)請(qǐng)求通過(guò)google的緩存服務(wù)器,同時(shí)改變路由。這就是為什么看到的IP不是自己機(jī)器的IP了。
由此看來(lái),Google的網(wǎng)絡(luò)加速器實(shí)際上是一個(gè)個(gè)人的小型Proxy緩存服務(wù)器+Google帝國(guó)的一個(gè)格點(diǎn)狀的Proxy緩存服務(wù)器系統(tǒng)構(gòu)成并有效的來(lái)管理這些緩存,并非什么特別的技術(shù),而是將大家忽視了多年的一些基本的概念從新應(yīng)用了起來(lái)。
3. 看看這里就更加明白一些:http://race.google/http://www.wespoke.com,注意,必須啟動(dòng)了加速器后才能連接,因?yàn)間oogle Web Accelerator講這個(gè)域名解釋為本機(jī)并采用Iframe顯示。您可以將http://www.wespoke.com替換成您想要到達(dá)的網(wǎng)頁(yè),看看有沒(méi)有加速?
關(guān)于加速的原理,你應(yīng)該了解expired模塊。
http://httpd.apache.org/docs/mod/mod_expires.html