如何配置組件是最大化利用瀏覽器的緩存能力來改善頁面的性能的重要規(guī)則塑猖。
Expires頭:
Web服務器使用Expires頭來告訴<strong><em>Web客戶端它可以使用一個組件的當前副本,直到指定的時間為止</strong></em>疆拘。
Expires頭能夠顯著減少響應時間的原因是:瀏覽器直接從硬盤上讀取緩存組件而無需生成任何HTTP流量。
長久的Expires頭應該包含任何不經常變化的組件寂曹,不僅僅是圖片哎迄,還包括腳本回右,樣式表和Flash組件。包含動態(tài)內容的HTML文檔不應該使用長久的Expires頭漱挚。
Cache-Control頭:
引入Cache-Control頭來<strong><em>克服Expires頭使用一個特殊的時間并要求服務端和客戶端的時鐘嚴格同步的限制</strong></em>翔烁。
Cache-Control頭max-age指令指定組件被緩存多久(以秒為單位,當請求秒數少于max-age,瀏覽器使用緩存版本以避免額外的HTTP請求)旨涝。<strong><em>使用帶max-age的Cache-Control頭可以消除Expires頭的限制</strong></em>蹬屹。
mod_expires:
mod_expires Apache模塊可以使Expires頭在使用時像max-age那樣以相對的方式設置日期。通過Expires-Default指令來完成白华。
<strong>總結:跨瀏覽器改善緩存的最佳解決方案就是使用Expires-Default設置的頭Expires慨默。</strong>
空緩存VS完整緩存
性能的改進取決于用戶在訪問你的頁面時是否有完整的緩存。組件可緩存能夠改善響應時間弧腥。
當用戶訪問過網站之后厦取,長久的Expires頭才會對頁面瀏覽產生影響,第一次訪問時對HTTP請求的數量不產生任何影響管搪,瀏覽器的緩存為空蒜胖。
緩存的完整和空是指頁面相關的瀏覽器緩存的狀態(tài)。
頁面組件沒有放在緩存中則緩存為“空”抛蚤;頁面中可緩存組件都在緩存中台谢,則緩存是“完整”。
空緩存或者完整緩存頁面瀏覽的數量取決于Web應用程序的本質岁经。