一直忙於工做,最近這段時間終於能夠靜下心來細讀一些與工做相關的書籍。本篇文章是《高性能網站建設指南》一書的梳理。
但願本身收穫的同時,也能給對這塊知識感興趣的童鞋給與入門指導。
關於《高性能網站建設指南》的梳理共有兩部份內容,本篇爲第一部分。第二部分見提高網站頁面速度的14條最佳實踐(二)。
《高性能網站建設指南》一書共列舉了14條提高網站速度的方法,本篇就前7種進行總結。css
1.圖片地圖
2.CSS Sprites
3.內聯圖片
4.合併腳本和樣式表web
內容發佈網絡(CDN)是一組分佈在不一樣地理位置的web服務器,用於更加有效地像用戶發佈內容。即利用就近原則,響應發送給用戶須要的數據,進而縮短響應時間,來提升網站性能。瀏覽器
瀏覽器(和代理)使用緩存來減小HTTP請求的數量,並減小HTTP響應的大小,使web頁面加載得更快。web服務器使用Expires頭來告訴web客戶端它可使用一個組件的當前副本。緩存
注意:Expires頭使用的是一個特定的時間,它要求客戶端與服務器的時鐘嚴格同步,一旦兩個時間統一,Expires頭的時間將沒有意義。
爲了解決Expires頭的限制,HTTP1.1 引入了Cache-Control使用max-age指令指定組件緩存多久。它以秒爲單位定義更新窗。若是從組件請求開始過去的秒數小於max-age,瀏覽器就可使用緩存的版本。服務器
注意: 1.在小於HTTP1.1版本以前仍須要設置Expires頭,爲了作更好的兼容,最好同時使用HTTP1.1和max-age,在支持max-age的版本中,若是二者同時存在max-age會重寫Expires頭。 2.利用Apache模塊mod_expires可使Expires頭可以像max-age那樣以相對的方式設置日期。經過Expires_Default指令來實現。時間能夠用年/月/周/日/時/分/秒爲單位來設置。
1.從HTTP1.1開始,web客戶端能夠經過HTTP請求中的Accept-Encoding頭來識別對壓縮的支持。
Accept-Encoding:gzip,deflate;
2.配置
a.Apache1.3的gzip壓縮由mod_gzip模塊提供
b.Apache2.x中壓縮經過mod_deflate模塊來完成。
3.代理緩存
在Web服務器的響應中添加Vary頭。Web服務器能夠告訴代理根據一個或者多個請求頭來改變緩存的響應。
Vary:Accept-Encoding
這種狀況下代理服務器會緩存每一個響應的兩個版本——Accept-Encoding爲gzip時的壓縮內容和沒指定Accept-Encoding時的非壓縮內容。網絡
因爲瀏覽器老是在樣式表加載並解析完以後纔會繪製頁面內容,因此把樣式表放在底部纔會出現白屏或者無樣式內容的閃爍問題。性能
瀏覽器老是從上到下執行頁面內容,若是將腳本放置在頁面頂部,則在加載腳本的這段時間內,頁面的內容呈現將被阻塞!網站
css表達式也會影響頁面的加載時間。若是必需要在頁面加載記載的時候對css樣式進行重置,能夠考慮使用時間處理器來代替css表達式。代理