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