题 什么是gZip压缩?


我听过很多应该使用的东西 GZIP 为他们的网页提供更快的访问和下载,并且它还节省了带宽。

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

如果我开始在我的webapps中使用gZip是什么 注意事项 我需要做什么? 有没有服务器或浏览器 限制 对于它,或它是否仅支持特定的编码。


37
2018-05-22 12:15


起源


在这里充分了解。 en.wikipedia.org/wiki/Gzip - Nitesh


答案:


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

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

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

使用GZip有一些注意事项,但总体而言,使用gzip通常比不使用gzip更好 - 例如,拉链和解压缩文件确实需要时间和处理器能力,但通常这不是问题,因为时间它这样做通常少于下载较小文件所节省的时间。因此,尽管浏览器必须解压缩文件,但总体效果是节省时间。

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

跨HTTP的GZip通常完全透明地发生。最终用户应该完全不知道它正在发生;浏览器会在幕后为他们做。从Web服务器端,只需在Web服务器软件中打开配置设置即可。从你的角度来看,这真的是你需要知道的;只需在服务器上设置gzip设置(或要求您的ISP执行此操作)。它很可能已经在你的网站上活跃起来而你甚至不知道。


39
2018-05-22 13:18



它依赖于浏览器吗? - Ric
@Ric - 不,所有浏览器都支持它。即使浏览器不支持它,它们仍应该工作 - 它是HTTP 1.1规范的一部分,客户端指定它支持哪种压缩,服务器将相应地响应(即,如果浏览器说“我可以“做gzip”,服务器不会发送gzip文件。我记得,早期版本的IE6中存在一个错误,它会破坏gzip,但是Web服务器为此实现了解决方法,并且IE6本身在WinXP中得到修复SP2,所以真的不会有很多人仍在使用破碎的版本。 - Spudley
是的,但是a)所有常见的浏览器和服务器都支持它,并且b)针对每个事务在浏览器和服务器之间协商压缩,因此任何缺乏不常用客户端的支持都会自动处理。 - Mark Adler


GZip在向浏览器提供请求时压缩html,js和css文件等文件。随着文件大小的减小,它以更快的方式提供给用户。并非所有浏览器都支持压缩,但现在所有现代浏览器都支持。强烈建议,但只有一部分是它会增加服务器的CPU使用率,这可能会引起关注。将Gzip与客户端缓存一起使用将有助于提高性能。


3
2018-05-22 12:19



如果您提供的文本信息非常简短,您可以将其添加到用户提出问题的下方的评论区域。提供具有全面性的描述性细节以及此处的说明性示例,可以帮助用户以及了解此问题的个人。日Thnx。 - @Devesh - Nitesh
@NathanLee我同意,你的意见。非常感谢 - Devesh