⑴ 網頁怎麼壓縮,大師們指點一下。
一.摘要
本文總結了如何為使用IIS託管的網站啟用Gzip壓縮, 從而減少網頁網路傳輸大小, 提高用戶顯示頁面的速度.
二.前言
本文的知識點是從互聯網收集整理, 主要來源於中文wiki. 使用YSlow檢測網站啟用了哪些優化時, Gzip是十分關鍵的一項. 啟動Gip壓縮將立竿見影的減少頁面的網路傳輸大小.
三.HTTP壓縮概述
HTTP 壓縮是在Web伺服器和瀏覽器間傳輸壓縮文本內容的方法。HTTP壓縮採用通用的壓縮演算法如gzip等壓縮HTML、JavaScript或CSS文件。
壓縮的最大好處就是降低了網路傳輸的數據量,從而提高客戶端瀏覽器的訪問速度。
當然,同時也會增加一點點伺服器的負擔。Gzip是比較常見的一種HTTP 壓縮演算法。
四.HTTP壓縮工作原理
Web伺服器處理HTTP壓縮的工作原理如下:
1.Web
伺服器接收到瀏覽器的HTTP請求後,檢查瀏覽器是否支持HTTP壓縮;
在用戶瀏覽器發送請求的HTTP頭中, 帶有"Accept-Encoding: gzip, deflate"參數則表明支持gzip和deflate兩種壓縮演算法.
2.如果瀏覽器支持HTTP壓縮,Web伺服器檢查請求文件的後綴名;靜態文件和動態文件後綴啟動要所都需要在MetaBase.xml中設置.
靜態文件需要設置:
HcFileExtensions Metabase Property
(單擊跳轉到MSDN說明) 動態文件需要設置: HcScriptFileExtensions Metabase Property (單擊跳轉到MSDN說明)
3.如果請求文件是HTML、CSS等靜態文件並且文件後綴啟用了壓縮,則Web伺服器到壓縮緩沖目錄中檢查是否已經存在請求文件的最新壓縮文件;
4.如果請求文件的壓縮文件不存在,Web伺服器向瀏覽器返回未壓縮的請求文件,並在壓縮緩沖目錄中存放請求文件的壓縮文件;
5.如果請求文件的最新壓縮文件已經存在,則直接返回請求文件的壓縮文件;
6.如果請求文件是ASPX等動態文件並且文件後綴啟用了壓縮,Web伺服器動態壓縮內容並返回瀏覽器,壓縮內容不存放到壓縮緩存目錄中。
五. 在IIS中啟用HTTP壓縮
IIS默認並不支持HTTP壓縮,需要進行簡單的配置
1.打開Internet信息服務(IIS)管理器,右擊"網站"->"屬性"選擇"服務"。在"HTTP壓縮"框中選中"壓縮應用程序文件"和"壓縮靜態文件",按需要設置"臨時目錄"和"臨時目錄的最大限制";
2.提醒: 經試驗此步驟在本人機器上沒有作用, 可以忽略. 在 Internet信息服務(IIS)管理器,右擊"Web服務擴展"->"增加一個新的Web服務擴展...",在"新建Web服務擴展"框中輸入擴名"HTTP Compression",添加"要求的文件"為C:WINDOWSsystem32inetsrvgzip.dll,其中Windows系統目錄根據您的安裝可能有所不同,選中"設置擴展狀態為允許";
3.使用文本編輯器打開C:.xml(建議先備份), 找到Location ="/LM/W3SVC/Filters/Compression/gzip用於設置gzip壓縮,找到Location ="/LM/W3SVC/Filters/Compression/deflate"用於設置deflate壓縮. 上面兩個節點緊挨著.並且設置的屬性相同.
如果需要壓縮動態文件,則將HcDoDynamicCompression設置為"TRUE",並在HcScriptFileExtensions中增加您要壓縮的動態文件後綴名,如aspx;如果需要壓縮靜態文件,則將HcDoStaticCompression和 HcDoOnDemandCompression設置為"TRUE",並在HcFileExtensions中增加您需要壓縮的靜態文件後綴名,如 xml、css等;HcDynamicCompressionLevel和HcOnDemandCompLevel表示需要的壓縮率,數值在0-10, 默認為0. HcDynamicCompressionLevel屬性說明:
HcDynamicCompressionLevel Metabase PropertyHcOnDemandCompLevel 屬性說明:HcOnDemandCompLevel Metabase Property說明: 這兩個屬性值一般推薦設置為
9, 具有最佳性價比.但是在我的window server 2003上, 壓縮率無論如何設置, jQuery和jQuery
UI兩個文件(58k/188k)壓縮後的大小一直相同.(20k/45k). 下面是我的實例: Xml代碼
1.<IIsCompressionSchemeLocation="/LM/W3SVC/Filters/Compression/deflate"
2.HcCompressionDll="%windir%system32inetsrvgzip.dll"
3.HcCreateFlags="0"
4.HcDoDynamicCompression="TRUE"
5.HcDoOnDemandCompression="TRUE"
6.HcDoStaticCompression="true"
7.HcDynamicCompressionLevel="9"
8.HcFileExtensions="htm
9. html
10. txt
11. js
12. css
13. swf
14. xml"
15.
HcOnDemandCompLevel="9"
16. HcPriority="1"
17. HcScriptFileExtensions="asp
18. aspx
19. dll
20. exe"
21. >
22.</IIsCompressionScheme>
23.<IIsCompressionSchemeLocation="/LM/W3SVC/Filters/Compression/gzip"
24. HcCompressionDll="%windir%system32inetsrvgzip.dll"
25. HcCreateFlags="1"
26. HcDoDynamicCompression="TRUE"
27. HcDoOnDemandCompression="TRUE"
28. HcDoStaticCompression="true"
29. HcDynamicCompressionLevel="9"
30. HcFileExtensions="htm
31. html
32. txt
33. js
34. css
35. swf
36. xml"
37. HcOnDemandCompLevel="9"
38. HcPriority="1"
39.
HcScriptFileExtensions
="asp
40. aspx
41. dll
42. exe"
43. >
44.</IIsCompressionScheme>
.csharpcode, .csharpcode pre { font-size: small; color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff; /*white-space: pre;*/ } .csharpcode pre
{ margin: 0em; } .csharpcode .rem { color: #008000; } .csharpcode .kwrd
{
color:
#0000ff;
}
.csharpcode
.str
{
color:
#006080;
}
.csharpcode
.op
{ color: #0000c0; } .csharpcode .preproc { color:
#cc6633; } .csharpcode .asp { background-color:
#ffff00;
}
.csharpcode
.html
{
color:
#800000;
}
.csharpcode
.attr
{
color:
#ff0000; } .csharpcode .alt { background-color: #f4f4f4; width: 100%;
margin: 0em; } .csharpcode .lnum { color: #606060; }
4.編輯完畢後保存MetaBase.xml文件;如果文件無法保存,則可能IIS正在使用該文件。打開"開始"->"管理工具"->"服務",停止"IIS Admin Service"後,即可保存
5.最後,重新啟動IIS。可以到HTTP壓縮測試網站驗證結果.以jQuery為例, 核心類庫和UI類庫原始大小分別是57k和188k,壓縮後分別是20k和45k:
我們通過Http頭中的: Content-Encoding:gzip 屬性判斷返回後的數據已經啟用了gzip壓縮:
使用YSlow檢測, 當只啟動靜態文件壓縮時:
Gzip壓縮評級為B:
當同時啟動了動態文件壓縮時, Gzip壓縮評級為A:
⑵ HTTP壓縮和F5是什麼意思
經常在講HTTP壓縮,到底HTTP壓縮是什麼意思?HTTP壓縮和F5指什麼意思呢?我查詢並整理了HTTP壓縮和F5的相關解釋如下:
HTTP壓縮:
鑒於互聯網上的寬頻有限,網路治理人員任何旨在加速接入速度的努力都是有價值的。其中的一個方法就是通過HTTP壓縮技術實現接入速度的加速,它通過減少在伺服器和客戶端之間傳輸的數據量,顯著地提高網站的性能。數據壓縮本身並不新鮮。但是,這種方法的特色在於對伺服器到客戶端之間的數據壓縮是實時的,很少有用戶知道這種方法。HTTP壓縮技術,無需客戶端配置,它是一種最為簡便的提高網路速度的方法。
-------------------------------------------------------
F5:
F5取名自龍卷風風力的最高等級,F5是應用交付網路(ADN)技術和解決方案領域全球領先廠商,輕松實現高性能應用交付,F5的解決方案包括:應用交付網路(ADN)、伺服器負載均衡、鏈路負載均衡、多站點負載均衡、WEB加速及應用安全、本地流量管理、災難備份、廣域網傳輸優化、SSL VPN、ISP互訪互通、遠程安全接入/訪問、文件存儲虛擬化、多鏈路接入、遠程安全訪問等等
⑶ 如何用nodejs實現http壓縮傳輸
推薦一個中間件,叫compression
使用見https://www.npmjs.com/package/compression
下面這個use中間件的語句寫在所有中間件的前面就行了,抓包可看到有個gzip傳輸
app.use(compression());