A. GZIP 與zip區別
一、主體不同
1、GZIP:最早由Jean-loup Gailly和Mark Adler創建,用於UNⅨ系統的文件壓縮。
2、ZIP:ZIP文件格式是一種數據壓縮和文檔儲存的文件格式。
二、特點不同
1、GZIP:基礎是DEFLATE,DEFLATE是LZ77與哈夫曼編碼的一個組合體。DEFLATE最初是作為LZW以及其它受專利保護的數據壓縮演算法的替代版本而設計的。
2、ZIP:是一種相當簡單的分別壓縮每個文件的存檔格式。分別壓縮文件允許不必讀取另外的數據而檢索獨立的文件。
三、優點不同
1、GZIP:可以減少存儲空間,通過網路傳輸文件時,可以減少傳輸的時間。
2、ZIP:支持基於對稱加密系統的一個簡單的密碼,已知有嚴重的缺陷,已知明文攻擊,字典攻擊和暴力攻擊。
B. Nginx伺服器中的Gzip配置參數詳解
gzip on; 開啟gzip off關閉
gzip_min_length 1k; 設置允許壓縮的頁面最小位元組(從header頭的Content-Length中獲取) 建議大於1k
gzip_buffers 4 16k; 以16k為單位,按照原始數據大小以16k為單位的4倍申請內存
gzip_http_version 1.1; 識別http協議的版本,早起瀏覽器可能不支持gzip自解壓,用戶會看到亂碼
gzip_comp_level 2; 等級1-9 最小的壓縮最快 但是消耗cpu
gzip_types text/plain application/x-javascript text/css application/xml; 匹配壓縮類型
gzip_vary on; 啟用應答頭"Vary: Accept-Encoding"
gzip_proxied off;
nginx做為反向代理時啟用,off(關閉所有代理結果的數據的壓縮),expired(啟用壓縮,如果header頭中包括"Expires"頭信息),no-cache(啟用壓縮,header頭中包含"Cache-Control:no-cache"),no-store(啟用壓縮,header頭中包含"Cache-Control:no-store"),private(啟用壓縮,header頭中包含"Cache-Control:private"),no_last_modefied(啟用壓縮,header頭中不包含"Last-Modified"),no_etag(啟用壓縮,如果header頭中不包含"Etag"頭信息),auth(啟用壓縮,如果header頭中包含"Authorization"頭信息)
gzip_disable msie6;
(IE5.5和IE6 SP1使用msie6參數來禁止gzip壓縮 )指定哪些不需要gzip壓縮的瀏覽器(將和User-Agents進行匹配),依賴於PCRE庫
gzip 決定是否開啟gzip模塊
gzip_buffers 設置gzip申請內存的大小,其作用是按塊大小的倍數申請內存空間,param2:int(k) 後面單位是k
gzip_comp_level 設置gzip壓縮等級,等級越底壓縮速度越快文件壓縮比越小,反之速度越慢文件壓縮比越大
gzip_min_length 當返回內容大於此值時才會使用gzip進行壓縮,以K為單位,當值為0時,所有頁面都進行壓縮
gzip_types 設置需要壓縮的MIME類型,非設置值不進行壓縮
param:text/html|application/x-javascript|text/css|application/xml
對於多數以文本為主的站點來說,文本自身內容占流量的絕大部分。雖然單個文本體積並不算大,但是如果數量眾多的話,流量還是相當可觀。啟用GZIP以後,可以大幅度減少所需的流量。
C. gzip壓縮實踐
為提高網頁載入速度,啟用 gzip 縮減資源的大小是非常常見的手段。現代瀏覽器均支持 gzip 壓縮,並會為HTTP請求自動協商此類壓縮。
本文將對 gzip 的實踐和原理做一個簡單的總結。
web伺服器在接收到瀏覽器的請求之後,會檢查瀏覽器可以接受哪些壓縮方法,詳情可見下圖。
瀏覽器在請求頭中會帶上 Accept-Encoding 這個參數來說明自己支持哪些內容編碼方式。
而服務端返回的 Response Headers 中則存在一個 Content-Encoding ,用來說明數據的壓縮方法。
幾乎所有的瀏覽器都已經支持了 gzip ,並且有請求頭的驗證,所以基本不需要擔心兼容相關的問題。
壓縮前後的體積前後差異,可以在控制台中看到。可以說,對於js、css文件的壓縮率還是比較可觀的。
經過這種方式的配置,在服務端響應請求的時候會對文件進行壓縮,之後返回壓縮過後的內容。不過壓縮這一過程多多少少會佔用一些服務端的性能,具體壓縮的程度,也就是 gzip_comp_level 設置的值也會影響到佔用性能的多少,接下來我們來看一些網上搜集到的數據,了解不同值的設置對文件大小和CPU佔用的影響。
可以看到,壓縮級別從0到1時,文件大小明顯減小,CPU消耗略微上漲。而在之後文件減小的速率明顯放緩,在達到了5之後繼續增加壓縮級別,文件的體積也幾乎沒有縮小,但CPU消耗卻有較為明顯的上漲。
根據結論可以看出,如果是在服務端使用 gzip 壓縮的話,考慮到性能和壓縮率的取捨,將壓縮級別設置為一個較低的值,比如2之類的,是比較合理的。
我們也可以選擇在打包構建項目的時候就對文件進行gzip壓縮
這邊以打包一個 webpack 的前端項目為例
運行構建命令後可以看到,在生成 .js 和 .css 的同時還生成了對應的 .gz 文件。
在這種方式的壓縮中,我們完全可以把壓縮等級設置為一個比較高的值(默認),畢竟只是略微影響打包的時間,卻能獲取一個更小的體積的包,還是比較值得的。
以 nginx 為例,靜態壓縮需要使用 http_gzip_static_mole 這個模塊,這個模塊不是默認的,應使用 --with-http_gzip_static_mole 的配置參數啟用它
之後再配置中添加
這樣便可開啟靜態壓縮。
需要注意以下幾點:
D. 跪求!ZIP.GZIP.TAR有啥區別那個壓縮的程度大急!
tar是打包,不是壓縮,只是把一堆文件打成一個文件而已GZIP用在HTTP協議上是一種用來改進WEB應用程序性能的技術,將網頁內容壓縮後再傳輸。zip就不用說了,主流的壓縮格式。zip最新的壓縮演算法還是很好的,建議還是用zip格式化,全平台通用。
E. linux中gzip/bzip2/xz都有1-9壓縮等級劃分,想問像tar zcvf/jcvf/Jcvf 這種命令怎麼指定壓縮等級
壓縮:
tar -czvp -f skype_backup.tar.gz skype_backup
分割:
split -b 4000k skype_backup.tar.gz skype_backup_20090626.tar.gz. –verbose
tar 命令的其它選項
man tar
若是初學Linux的話建議看看《Linux就該這么學》這本書。
F. gzip格式是啥
Gzip是一種內容壓縮格式,現在大部份瀏覽器都可以瀏覽經過Gzip壓縮過的內容
伺服器將要輸出的內容使用Gzip壓縮後傳給瀏覽器,這樣可以達到提高網頁的瀏覽速度和減少伺服器網路帶寬的使用,但同時多增加了在伺服器端Gzip壓縮內容的操作,所以會給伺服器帶來一定的負擔...
GZIP最早由Jean-loup Gailly和Mark Adler創建,用於UNIX系統的文件壓縮。我們在Linux中經常會用到後綴為.gz的文件,它們就是GZIP格式的。現今已經成為Internet 上使用非常普遍的一種數據壓縮格式,或者說一種文件格式。HTTP協議上的GZIP編碼是一種用來改進WEB應用程序性能的技術。大流量的WEB站點常常使用GZIP壓縮技術來讓用戶感受更快的速度。
gzip 命令
減少文件大小有兩個明顯的好處,一是可以減少存儲空間,二是通過網路傳輸文件時,可以減少傳輸的時間。gzip 是在 Linux 系統中經常使用的一個對文件進行壓縮和解壓縮的命令,既方便又好用。
語法:gzip [選項] 壓縮(解壓縮)的文件名
該命令的各選項含義如下:
-c 將輸出寫到標准輸出上,並保留原有文件。
-d 將壓縮文件解壓。
-l 對每個壓縮文件,顯示下列欄位:
壓縮文件的大小;未壓縮文件的大小;壓縮比;未壓縮文件的名字
-r 遞歸式地查找指定目錄並壓縮其中的所有文件或者是解壓縮。
-t 測試,檢查壓縮文件是否完整。
-v 對每一個壓縮和解壓的文件,顯示文件名和壓縮比。
-num 用指定的數字 num 調整壓縮的速度,-1 或 --fast 表示最快壓縮方法(低壓縮比),
-9 或--best表示最慢壓縮方法(高壓縮比)。系統預設值為 6。
指令實例:
gzip *
% 把當前目錄下的每個文件壓縮成 .gz 文件。
gzip -dv *
% 把當前目錄下每個壓縮的文件解壓,並列出詳細的信息。
gzip -l *
% 詳細顯示例1中每個壓縮的文件的信息,並不解壓。
gzip usr.tar
% 壓縮 tar 備份文件 usr.tar,此時壓縮文件的擴展名為.tar.gz。
G. linux怎樣解壓.gz文件
當在備份重要文件和通過網路發送大文件的時候,對文件進行壓縮非常有用。請注意,壓縮一個已經壓縮過的文件會增加額外開銷,因此你將會得到一個更大一些的文件。所以,請不要壓縮已經壓縮過的文件。在 GNU/Linux 中,有許多程序可以用來壓縮和解壓縮文件。在這篇教程中,我們僅學習其中兩個應用程序。
在類 Unix 系統中,最常見的用來壓縮文件的程序是:
gzip
bzip2
1. 使用 gzip 程序來壓縮和解壓縮文件
gzip是一個使用 Lempel-Ziv 編碼(LZ77)演算法來壓縮和解壓縮文件的實用工具。
1.1 壓縮文件
如果要壓縮一個名為ostechnix.txt的文件,使之成為 gzip 格式的壓縮文件,那麼只需運行如下命令:
上面的命令運行結束之後,將會出現一個名為ostechnix.txt.gz的 gzip 格式壓縮文件,代替了原始的ostechnix.txt文件。
gzip命令還可以有其他用法。一個有趣的例子是,我們可以將一個特定命令的輸出通過管道傳遞,然後作為gzip程序的輸入來創建一個壓縮文件。看下面的命令:
上面的命令將會創建一個 gzip 格式的壓縮文件,文件的內容為Downloads目錄的目錄項。
1.2 壓縮文件並將輸出寫到新文件中(不覆蓋原始文件)
默認情況下,gzip程序會壓縮給定文件,並以壓縮文件替代原始文件。但是,你也可以保留原始文件,並將輸出寫到標准輸出。比如,下面這個命令將會壓縮ostechnix.txt文件,並將輸出寫入文件output.txt.gz。
類似地,要解壓縮一個gzip格式的壓縮文件並指定輸出文件的文件名,只需運行:
上面的命令將會解壓縮output.txt.gz文件,並將輸出寫入到文件ostechnix1.txt中。在上面兩個例子中,原始文件均不會被刪除。
1.3 解壓縮文件
如果要解壓縮ostechnix.txt.gz文件,並以原始未壓縮版本的文件來代替它,那麼只需運行:
我們也可以使用gunzip程序來解壓縮文件:
1.4 在不解壓縮的情況下查看壓縮文件的內容
如果你想在不解壓縮的情況下,使用gzip程序查看壓縮文件的內容,那麼可以像下面這樣使用-c選項:
或者,你也可以像下面這樣使用zcat程序:
你也可以通過管道將輸出傳遞給less命令,從而一頁一頁的來查看輸出,就像下面這樣:
另外,zless程序也能夠實現和上面的管道同樣的功能。
1.5 使用 gzip 壓縮文件並指定壓縮級別
gzip的另外一個顯著優點是支持壓縮級別。它支持下面給出的 3 個壓縮級別:
1– 最快 (最差)
9– 最慢 (最好)
6– 默認級別
要壓縮名為ostechnix.txt的文件,使之成為「最好」壓縮級別的 gzip 壓縮文件,可以運行:
1.6 連接多個壓縮文件
我們也可以把多個需要壓縮的文件壓縮到同一個文件中。如何實現呢?看下面這個例子。
上面的兩個命令將會壓縮文件ostechnix1.txt和ostechnix2.txt,並將輸出保存到一個文件output.txt.gz中。
你可以通過下面其中任何一個命令,在不解壓縮的情況下,查看兩個文件ostechnix1.txt和ostechnix2.txt的內容:
如果你想了解關於gzip的更多細節,請參閱它的 man 手冊。
2. 使用 bzip2 程序來壓縮和解壓縮文件
bzip2和gzip非常類似,但是bzip2使用的是 Burrows-Wheeler 塊排序壓縮演算法,並使用哈夫曼(Huffman)編碼。使用bzip2壓縮的文件以 「.bz2」 擴展結尾。
正如我上面所說的,bzip2的用法和gzip幾乎完全相同。只需在上面的例子中將gzip換成bzip2,將gunzip換成bunzip2,將zcat換成bzcat即可。
要使用bzip2壓縮一個文件,並以壓縮後的文件取而代之,只需運行:
如果你不想替換原始文件,那麼可以使用-c選項,並把輸出寫入到新文件中。
如果要解壓縮文件,則運行:
或者,
如果要在不解壓縮的情況下查看一個壓縮文件的內容,則運行:
或者,
如果你想了解關於bzip2的更多細節,請參閱它的 man 手冊。
總結
在這篇教程中,我們學習了gzip和bzip2程序是什麼,並通過 GNU/Linux 下的一些例子學習了如何使用它們來壓縮和解壓縮文件。接下來,我們將要學習如何在 Linux 中將文件和目錄歸檔。
乾杯!