
Gzip 数据压缩软件是跨平台的,在 Web 开发和 Web 项目中被广泛用作首选压缩解决方案。它可以通过命令行工具轻松激活和操作,帮助您节省存储空间并提高系统性能。
Gzip 的工作原理
Gzip 是 “GNU zip” 的简称,它基于免费提供的 Deflate 算法,该算法将 LZ77(Lempel-Ziv 77)压缩方法与霍夫曼编码相结合。通过这些技术,Gzip 文件会扫描重复的数据字符串。如果程序遇到这些重复的序列,就会用对首次出现的字符串的链接来替换它们。这些序列的长度通常限制在 32,000 字节以内。如果一个字符串在前面的 32,000 字节中没有出现过,它就会以未压缩的形式存储在扩展名为.gz 的 Gzip 文件中。
该程序仅限于处理单个文件,因此需要使用打包程序 tar 来创建扩展名为.tar.gz 或.tgz 的所谓 “tarball” 归档文件。默认情况下,在对文件直接应用 gzip 压缩后,原始文件会被删除。不过,您可以使用可选参数 – k 来禁用这种自动删除行为。要解压缩文件,可以使用 gunzip 实用程序或相应的 gzip 命令。
Gzip 的语法和命令概述
尽管不同平台上有图形用户界面可供使用,但当然也完全可以在终端或命令提示符中通过命令使用 gzip。由于 gzip 是为这种使用方式优化的经典命令行工具,即使是初学者也能轻松掌握。一般语法如下:
1 gzip option file(s)
参数不是必需的。如果该字段留空,gzip 会直接使用其默认设置。例如,以下简单命令就足以创建文本文件 example.txt 的压缩版本:
1 gzip example.txt
如果之后要解压缩文件,或者要指定压缩级别、存储位置或处理原始文件的方式,命令中就需要有相应的参数。下表概述了最重要的 gzip 命令:
参数 | 描述 |
---|---|
-1…-9 | 设置压缩级别(1-9),其中 1 提供最快但压缩率最低的结果,9 提供最佳但最慢的压缩效果;默认级别为 5 |
-r | 递归扫描目录(包括所有子目录)并压缩或解压缩其中的所有文件 |
-f | 强制进行 gzip 压缩,必要时覆盖同名的现有文件 |
-d | 将所选文件解压缩到当前目录 |
-k | 防止删除原始文件 |
-l | 显示压缩文件的压缩比等信息 |
-c | 将压缩文件输出到标准输出(通常是连接到命令行的屏幕) |
-q | 禁止显示所有 gzip 消息 |
-t | 测试压缩文件的完整性 |
-h | 列出所有可用参数 |
Gzip 压缩的应用场景
如今,gzip 几乎是平台无关的,并且只要所选项目符合 GPL 许可证,就可以根据需要进行扩展。在 Linux 系统上,压缩工具通常是预装的,或者可以通过软件包管理器轻松获取。gzip 官方网站也提供适用于 macOS 和 Windows 的版本。您可以随时在这些系统上使用该软件来节省存储空间。
另一个关键应用领域是 Web。像 Apache 这样的 Web 服务器多年来一直支持 gzip 压缩,现代浏览器能够解释压缩文件并在渲染网站时对其进行解压缩。这正是 gzip 能够充分发挥作用的地方,因为启用后,Web 服务器会自动压缩上传的内容和服务器上动态生成的网站元素。这可以作为基本的网站优化措施,显著缩短网站加载时间。同时,浏览器在后台处理解压缩,不会消耗额外的带宽。这种性能提升对移动用户尤其有益,还可以间接提高网站的搜索引擎排名。
如何在 Apache Web 项目中使用 Gzip 压缩
Web 服务器通常将 gzip 压缩作为一个模块提供,只需启用即可。如今,许多 Web 托管提供商默认激活此功能,但过去并非总是如此。如果您不确定托管提供商是否支持 gzip 压缩,可以直接联系他们,或者自己进行手动检查。
在 Apache Web 服务器上,您可以使用简单的 phpinfo () 输出来检查模块设置。HTTP_ACCEPT_ENCODING 条目会显示所选的压缩方法,或者是否启用了任何压缩。如果 gzip 可用,您有三种不同的选项来根据需要使用此压缩工具。
选项 1:在.htaccess 文件中启用 Gzip 压缩
使用.htaccess 文件,您可以定义特定于目录的设置,并实时配置 Web 服务器。这之所以可行,是因为该配置文件(通常位于根目录中)会在每次服务器收到请求时自动读取。然而,对于某些 Web 托管提供商,.htaccess 文件可能位于不同的文件夹中、处于隐藏状态,甚至被限制访问。在这种情况下,您唯一的选择是联系托管提供商请求访问权限。如果您能够进行更改,可以通过为 Deflate 算法模块(mod_deflate)添加以下代码到.htaccess 文件中来启用 gzip 压缩:
1
2
3
4
5
6
7
8
9
10
11 <IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript
</IfModule>
提示:使用 mod_gzip 和 mod_deflate 模块也需要 Web 主机的权限。
选项 2:通过 PHP 启用 Gzip 压缩
可以使用简单的 PHP 语句激活 gzip 压缩。缺点是必须将代码单独添加到每个 PHP 文件中。因此,只有在您没有编辑.htaccess 文件的必要权限时,才应使用此选项。需放置在每个文件开头的代码行如下:
1
2
3 <?php
ob_start("ob_gzhandler");
?>
选项 3:通过插件实现 Gzip 压缩
除了这两种手动解决方案外,还有一种设置起来只需很少精力的变体:使用内容管理系统的插件激活 gzip 压缩。这些有用的扩展程序主要适用于基于 PHP 的 CMS(如 WordPress),您可以在几分钟内嵌入并根据需要进行调整。以下是该博客软件最受欢迎的三个插件:
- W3 Total Cache:W3 Total Cache WordPress 插件承诺显著改善网站性能。除了各种缓存机制和专门的移动支持外,这个 SEO 和可用性套件还包括启用 gzip 压缩的选项。
- WP Rocket:WP Rocket 是另一个经典的 WordPress 缓存插件。它易于使用,从一开始就激活所有关键性能优化功能,包括 gzip 压缩。
- WP Performance Score Booster:WP Performance Score Booster 插件的活跃安装量已超过 10,000 次。使用此插件,您可以轻松启用 gzip 并有效压缩 Web 项目的内容,包括文本、HTML、JavaScript、CSS、XML 等。
如何在 NGINX Web 服务器上逐步配置 Gzip
如果您使用 NGINX Web 服务器交付网站内容,也可以利用 gzip 压缩来缩短项目的加载时间。为此,您只需配置 ngx_http_gzip_module。默认情况下,用于启用或禁用压缩服务的 gzip 指令是关闭的。
要更改此设置,请打开主配置文件 nginx.conf 并找到 gzip 指令。将 gzip off 替换为 gzip on。下表解释了 NGINX 中用于配置 gzip 压缩的一些其他指令的用途和选项:
命令 | 语法 | 默认设置 | 描述 |
---|---|---|---|
gzip_buffers | gzip_buffers number size; | gzip_buffers 32 4k|16 8k; | 定义压缩过程中使用的缓冲区的数量和大小 |
gzip_comp_level | gzip_comp_level level; | gzip_comp_level 1; | 设置压缩级别;取值范围:1 – 9 |
gzip_min_length | gzip_min_length length; | gzip_min_length 20; | 指定要压缩的文件的最小长度(以字节为单位) |
gzip_http_version | gzip_http_version version; | gzip_http_version 1.1; | 指定压缩响应所需的最低 HTTP 版本 |
gzip_types | gzip_types content-type; | gzip_types text/html; | 确定应压缩的内容类型(例如 CSS、JSON、XML) |
如何测试 Gzip 压缩
为网站配置 gzip 压缩后,您可以使用各种工具来验证其是否正常工作,以及 Web 服务器是否在响应客户端请求时提供压缩内容。为此,最推荐的工具之一是 Google PageSpeed Insights。只需输入网站的任何页面,该工具就会自动分析其内容,并提供有关页面性能优缺点的报告。在结果中,您会找到有关是否启用 gzip 压缩的信息。
或者,您可以使用 WhatsMyIP.org 上的 HTTP 压缩测试来快速测试 gzip。
文章名称:《Gzip 是什么?如何在 Web 项目中使用 Gzip 压缩》
文章固定链接:https://www.dayanzai.me/what-is-gzip.html
本站资源仅供个人学习交流,请于下载后 24 小时内删除,不允许用于商业用途,否则法律问题自行承担。
猜你喜欢
- 2020-02-22流量监控和分析 NetFlow Analyzer 12.5.0 x64 中文多语免费版
- 2023-05-27Windows Hosts 文件编辑器 BlueLife Hosts Editor 1.5 中文多语免费版
- 2020-07-16下载安装 Windows 10 Build 2004 策略组 (Admx) 管理模板
- 2020-08-07Windows 系统信息查看工具 PCHunter 1.57 中文免费版
- 2025-01-12安卓气象预报和天气数据分析 Windy 44.1.3 中文多语免费版
相关推荐
- 2019-11-18免费光盘刻录工具 CDBurnerXP 4.5.8 Buid 7128 + x64 中文版
- 2025-03-25迅连科技音频处理工具 CyberLink AudioDirector 2025 v15.3.5119.0 中文多语免费版
- 2025-06-14开源免费 DJ 混音软件 Mixxx 2.5.2 中文多语免费版
- 2020-11-24韩国首尔政府推出免费商用字体 – 首尔南山体
- 2014-07-103ds Max 逼真卧室制作视频教程下载 3.2G
发表评论
MORE>>微软应用
-
1
-
2
-
3
-
4
-
5
-
6
-
7
-
8
MORE>>安卓应用
-
1
-
2
-
3
-
4
-
5
-
6
-
7
-
8
MORE>>教程资源
-
1
-
2
-
3
-
4
-
5
-
6
-
7
-
8
MORE>>其它资源
-
1
-
2
-
3
-
4
-
5
-
6
-
7
-
8