【问题标题】:What is gZip compression?什么是 gZip 压缩?
【发布时间】:2013-05-17 11:44:48
【问题描述】:

我听说很多人应该在他们的网页上使用 gZip 以加快访问和下载速度,而且还可以节省带宽。

那么这个 gZip 压缩是什么以及它如何使下载更快?它是压缩 HTML 和图像还是仅压缩 HTML。

如果我要开始在我的 web 应用程序中使用 gZip,我需要做什么注意事项? 是否有任何服务器或浏览器的限制,或者它只支持特定的编码。

【问题讨论】:

标签: html browser gzip http-compression


【解决方案1】:

Gzip 是一种压缩 JavaScript 和 CSS 以提高网页速度的方法。最终,我们的网站加载时间随着整体速度的提高而减少。

【讨论】:

    【解决方案2】:

    GZip 在向浏览器提供请求时会压缩 HTML、JavaScript 和 CSS 等文件。随着文件大小的减小,它以更快的方式提供给用户。并非所有浏览器都支持压缩,但现在所有现代浏览器都支持它。 强烈建议使用 Gzip,但它有一个缺点,即会增加服务器的 CPU 使用率,这有时可能是一个问题。将 Gzip 与客户端缓存一起使用将有助于提高性能。

    【讨论】:

    • 如果您提供的文本信息非常简短,您可以将其添加到用户提出问题的下方评论区。在此处提供全面的描述性详细信息以及说明性示例,以帮助用户和个人了解此问题。谢谢。 - @Devesh
    【解决方案3】:

    GZip 是一种数据压缩形式 - 即,它需要一大块数据并使其更小。解压压缩文件即可恢复原始数据。

    它与网络应用程序和网站相关,因为 HTTP 协议包括对正在发送的数据进行 gzip 压缩的能力。

    这意味着,当它在使用时,您为网站提供服务的带宽成本会更低,因为访问该网站的人会下载更小的文件。

    使用 GZip 有一些注意事项,但总的来说,使用 gzip 通常比不使用要好 - 例如,压缩和解压缩文件确实需要时间和处理器能力,但通常情况下,这是这不是问题,因为执行此操作所需的时间通常少于下载较大文件所节省的时间。因此,尽管浏览器必须解压缩文件,但总体效果是节省时间。

    GZip 可以压缩所有文件;文件类型或编码没有任何区别。显然,有些文件可以比其他文件更有效地压缩,因此节省的带宽会有所不同——HTML 等文本文件的效果最好;图像不会被 gzip 压缩太多,因为它们已经内置了一些压缩功能。某些文件(例如,那些已经被高度压缩的文件,如 .zip 文件)在 gzip 压缩时实际上可能会稍大一些,因为它们无法进一步压缩,但 gzip 仍需要将其元数据添加到文件中。但这些都是边缘情况,并没有太大区别。

    跨 HTTP 的 GZip 通常完全透明地发生。最终用户应该完全不知道它正在发生;浏览器会在幕后为他们做这件事。从网络服务器端,只需打开网络服务器软件中的配置设置即可。从您的角度来看,这就是您需要知道的全部内容;只需在您的服务器上设置 gzip 设置(或要求您的 ISP 执行此操作)。它很可能在您不知情的情况下已经在您的网站上处于活动状态。

    【讨论】:

    • @Ric - 不,所有浏览器都支持它。即使浏览器不支持它,它们仍然可以工作——这是 HTTP 1.1 规范的一部分,客户端指定它支持哪种压缩,服务器会相应地响应(即,如果浏览器说“我可以't do gzip",服务器不会发送 gzip 压缩文件。我记得,IE6 的早期版本中存在一个会破坏 gzip 的错误,但 Web 服务器为此实施了解决方法,IE6 本身在 WinXP 中已修复SP2,所以真的不会有很多人还在使用损坏的版本。
    • 是的,但是 a) 所有常见的浏览器和服务器都支持它,并且 b) 压缩是在浏览器和服务器之间为每个事务协商的,因此不常见的客户端的任何缺乏支持都会自动处理。跨度>
    • 所以计算机速度很快,但互联网很慢,所以我们想通过网络发送一个较小的文件。但是,如果它是一个快速的服务器,并且我的网速​​很好,并且我使用的是 CPU 速度较慢的安卓手机,那么 gzip 会导致网页加载速度变慢吗?解压时间会比下载时间长吗?
    • @Curtis:解压时间会比下载时间长吗? 不。没有任何实际例子。唯一不值得使用 gzip 的是已经高度压缩的文件。