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 中将文件和目录归档。
干杯!