1. gzip html文件怎麼打開
在瀏覽網頁的時候,瀏覽器需要把網頁上的內容,包括網頁HTML,CSS,JS,FLASH和圖片等下載到本地,然後把它們顯示出來。如果網頁上的內容是固定的,下載速度也不是你我能控制的,但下載的大小則是可以控制的,只需要你再傳送的過程中先把內容壓縮一下即可。
對於一般的HTML,CSS和JS文件,GZIP的壓縮比率達50%到80%,節約的流量是非常驚人的。
動態內容壓縮
動態內容指動態腳本比如PHP生成的內容,比如WordPress產生的內容均為動態腳本內容。對於動態腳本的壓縮方式有兩種,一種是ob_gzhandler,一種是zlib.output_compression。前者幾乎所有伺服器都支持,只需要在WordPress後台options->Reading->WordPress should compress articles (gzip) if browsers ask for them打開GZIP傳輸即可。而後者是一個PHP模塊,效果更佳,因為它是邊生成,邊壓縮,邊傳輸的,效率和速度都更好。但這個是PHP的一個模塊,不是所有伺服器上的有這個模塊。
靜態文本壓縮
但對於另外一些需要壓縮的靜態文本,比如html, css, javascript文件等。相應的靜態文本壓縮的Apache模塊有兩種,GZIP和DEFLATE,後者更好,不過這都沒啥選擇,完全看伺服器是否提供,個人無法配置,比如使用最多的Bluehost和Dreamhost都不支持。
靜態文本調用PHP壓縮模塊實現GZIP壓縮效果
如果伺服器不提供對於靜態文本的GZIP壓縮模塊,唯一的出路是通過調用PHP。好處是除了在目錄下添加一個文件和修改.htaccess之外,不需要對別的代碼作任何修改,所有的js,javascript的壓縮都自動生效。
gzip命令是Linux系統中常用來壓縮文件的工具,使用gzip壓縮後的文件名會加上.gz擴展名。以下是gzip命令的一些常用選項及其說明:
基本使用:
常用選項:
使用gzip命令時,需要注意文件名的變化和選項的搭配,以確保壓縮或解壓操作按預期進行。
3. 簡單兩步,為ASP.NET Core應用程序開啟gzip+Brotli響應壓縮
在開發過程中,優化網路帶寬是不可忽視的資源管理策略。響應壓縮技術能有效節省帶寬,提高訪問速度,特別是在處理文本類型資源如CSS、JavaScript、HTML、XML和JSON時。微軟ASP.NET Core內置了gzip和Brotli這兩種壓縮方式,以簡化開發者的設置過程。
gzip是一種常見的HTTP協議壓縮技術,可將純文本內容壓縮到原大小的40%,從而加快數據傳輸。而Brotli,發布於2015年,是Google為提升網路壓縮效率而設計的,通常能提供比gzip更高的壓縮密度,且壓縮與解壓縮速度相近。
要判斷瀏覽器是否支持這些壓縮,需查看客戶端的Accept-Encoding請求頭。例如,Chrome瀏覽器支持gzip、deflate和br(Brotli)編碼。在ASP.NET Core中,我們可通過添加依賴注入,配置Startup中的services來啟用壓縮,設置壓縮級別和 MIME 類型,例如針對SVG圖像的壓縮。
在代碼示例中,初始未啟用壓縮時,一個簡單的Action響應為5.3KB,耗時178ms。啟用gzip和Brotli壓縮後,請求大小降至214位元組,耗時僅6ms,性能提升明顯。通過這些配置,我們可以為ASP.NET Core應用帶來顯著的帶寬節省和訪問速度提升。
4. 把純文本字元串用Gzip壓縮再轉換為Base64能有多少壓縮率
其實具體多大壓縮率要看源文件的內容,一般來說重復的單詞越多,壓縮率越高。
下面是把/usr/share/dict/words壓縮的測試程序
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.zip.GZIPOutputStream;
import org.apache.commons.codec.binary.Base64;
public class GzipBase64Tests {
public static void main(String[] args) throws Exception {
File input = new File("/Users/matianyi/input.txt");
File output = new File("/Users/matianyi/output.txt");
if (!input.exists()) {
System.out.println("input file not exists!");
return;
}
if (output.exists()) {
output.delete();
}
ByteArrayOutputStream buffer = new ByteArrayOutputStream();
GZIPOutputStream gout = new GZIPOutputStream(buffer);
FileInputStream in = new FileInputStream(input);
long t1 = System.currentTimeMillis();
byte[] buf = new byte[1024];
int total=0;
int rd;
while ((rd = in.read(buf)) != -1) {
total += rd;
gout.write(buf,0, rd);
}
gout.close();
in.close();
byte[] result = buffer.toByteArray();
long t2 = System.currentTimeMillis();
String base64 = Base64.encodeBase64String(result);
long t3 = System.currentTimeMillis();
System.out.printf("raw %d -> gzip %d -> base64 %d, time1 %dms, time2 %dms", total, result.length, base64.length(), t2-t1, t3-t2);
}
}
輸出為: raw 2493109 -> gzip 753932 -> base64 1005244, time1 225ms, time2 43ms
壓縮了50%。
5. gzip壓縮 是什麼
這一般是指WWW伺服器中安裝的一個功能,當有人來訪問這個伺服器中的網站時,伺服器中的這個功能就將網頁內容壓縮後傳輸到來訪的電腦瀏覽器中顯示出來.一般對純文本內容可壓縮到原大小的40-70左右%.這樣傳輸就快了,效果就是你點擊網址後會很快的顯示出來.當然這也會增加伺服器的負載.一般伺服器中都安裝有這個功能模塊的.
網站的訪問速度是由多個因素所共同決定的,這些因素例如應用程序的響應速度、網路帶寬、伺服器性能、與客戶端之間的網路傳輸速度等等。其中最重要的一個因素是應用程序本身的響應速度,因此當你為網站性能所苦惱時,你第一個需要著手進行處理的便是盡可能的提升應用程序的執行速度,你可以使用緩存或者是優化代碼的執行效率來提升應用程序的速度。
在確保您的應用程序的性能已經達到足夠好,同時伺服器的性能也完全滿足的情況下,不妨來試試網頁壓縮來進一步提升網頁的瀏覽速度,而且非常重要的是,它完全不需要任何的成本,只不過是會讓您的伺服器CPU佔用率稍微提升一兩個百分點而已或者更少。
網頁壓縮是一項由 WEB 伺服器和瀏覽器之間共同遵守的協議,也就是說 WEB 伺服器和瀏覽器都必須支持該技術,所幸的是現在流行的瀏覽器都是支持的,包括 IE、FireFox、Opera 等;伺服器有 Apache 和 IIS 等。雙方的協商過程如下:
1.首先瀏覽器請求某個 URL 地址,並在請求的頭 (head) 中設置屬性 accept-encoding 值為 gzip, deflate,表明瀏覽器支持 gzip 和 deflate 這兩種壓縮方式(事實上 deflate 也是使用 gzip 壓縮協議);
2.WEB 伺服器接收到請求後判斷瀏覽器是否支持壓縮,如果支持就傳送壓縮後的響應內容,否則傳送不經過壓縮的內容;
3.瀏覽器獲取響應內容後,判斷內容是否被壓縮,如果是則解壓縮,然後顯示響應頁面的內容。
在實際的應用中我們發現壓縮的比率往往在 3 到 10 倍,也就是本來 50k 大小的頁面,採用壓縮後實際傳輸的內容大小隻有 5 至 15k 大小,這可以大大節省伺服器的網路帶寬,同時如果應用程序的響應足夠快時,網站的速度瓶頸就轉到了網路的傳輸速度上,因此內容壓縮後就可以大大的提升頁面的瀏覽速度。