在去年十月的一篇博客文章中,我們提到 MIP 加速器是由 MIP-HTML, MIP-JS 和 MIP-Cache 三個(gè)模塊共同產(chǎn)生加速效果的。MIP-HTML 和 MIP-JS 都是開(kāi)源的,在 github 上可以訪問(wèn)。但 MIP-Cache 是百度提供的,所有從百度搜索結(jié)果頁(yè)打開(kāi)的頁(yè)面都是 MIP-Cache 的頁(yè)面。那么,為什么 MIP-Cache 存在呢?
1. CDN 加速
CDN (Content Delivery Network) 加速原理,簡(jiǎn)單來(lái)說(shuō)就是在不同地點(diǎn)建立內(nèi)容緩存節(jié)點(diǎn)。通過(guò)負(fù)載均衡技術(shù),將用戶的請(qǐng)求定向到最合適的緩存服務(wù)器上去獲取內(nèi)容。
MIP-Cache 可以理解為一套 CDN 緩存系統(tǒng)。當(dāng)用戶從百度搜索結(jié)果頁(yè)訪問(wèn) MIP 頁(yè)面時(shí),請(qǐng)求首先會(huì)發(fā)到 MIP-Cache CDN 服務(wù)器,如果頁(yè)面存在,則從 CDN 直接返回靜態(tài)頁(yè)面;如果頁(yè)面不存在或過(guò)期,則會(huì)請(qǐng)求第三方服務(wù)器(或站長(zhǎng)自己使用的 CDN)。本次返回的符合 MIP 規(guī)范的頁(yè)面會(huì)同時(shí)加入 MIP-Cache,為下次頁(yè)面請(qǐng)求做準(zhǔn)備。
2. 緩存靜態(tài)文件,同源策略加速
百度 MIP-Cache 給所有符合 MIP 規(guī)范,能通過(guò) MIP 校驗(yàn)的 MIP 頁(yè)面提供靜態(tài)文件的緩存服務(wù),靜態(tài)文件包括圖片,外鏈 CSS 文件(不推薦)等。在緩存靜態(tài)文件的同時(shí),HTML 頁(yè)面本身也會(huì)被改寫,引用圖片的地址會(huì)被修改為 MIP-Cache 中的圖片地址。
緩存靜態(tài)文件帶來(lái)最大的好處是避免從不同域名下讀取靜態(tài)文件,使用同源策略減少 DNS 解析時(shí)間,能夠加速加載速度。
3. 百度搜索的預(yù)取加速
頁(yè)面預(yù)取是指在搜索結(jié)果頁(yè)展示后,用戶點(diǎn)擊某條結(jié)果之前,搜索引擎就開(kāi)始預(yù)測(cè)用戶可能點(diǎn)擊的結(jié)果,提前加載落地頁(yè)的內(nèi)容。在用戶真正點(diǎn)擊這條結(jié)果時(shí),結(jié)果的內(nèi)容已經(jīng)從遠(yuǎn)端進(jìn)入了瀏覽器緩存,省去了網(wǎng)絡(luò)加載時(shí)間。
搜索預(yù)取會(huì)請(qǐng)求 MIP-Cache 內(nèi)容,所有進(jìn)入 MIP-Cache 的頁(yè)面都被認(rèn)為是合法的 MIP 頁(yè)(原理見(jiàn)下文)。目前 MIP 項(xiàng)目組正在討論預(yù)取的技術(shù)方案,請(qǐng)關(guān)注博客進(jìn)展。
附: MIP-Cache 的更新和校驗(yàn)策略
考慮到站長(zhǎng)有更新頁(yè)面的需求,MIP-Cache 會(huì)定期重新抓取 MIP 頁(yè)并進(jìn)行校驗(yàn)。
在 MIP-Cache 中:
頁(yè)面的緩存時(shí)間為52分鐘-5天(由該頁(yè)面用戶點(diǎn)擊量和站點(diǎn)本身穩(wěn)定性決定)。
圖片緩存時(shí)間為10天。
MIP-JS 組件文件的緩存時(shí)間為10分鐘。
在當(dāng)前文件過(guò)期后,MIP-Cache 會(huì)重新抓取資源。如果是 HTML 頁(yè)面,MIP-Cache 還會(huì)對(duì)頁(yè)面文件進(jìn)行 MIP 規(guī)范校驗(yàn)。如果此時(shí)頁(yè)面內(nèi)容不再符合 MIP 規(guī)范,MIP-Cache 就不再緩存這個(gè)頁(yè)面了。這樣,所有 MIP-Cache 中的頁(yè)面都是最新的,并且符合 MIP 規(guī)范。
如果要快速清理 MIP-Cache 內(nèi)容,請(qǐng)參考站長(zhǎng)平臺(tái) MIP-Cache 說(shuō)明。
MIP-Cache 使用方法及 URL 生成規(guī)則,請(qǐng)查閱 MIP 官方文檔《MIP-Cache 規(guī)范》。