【问题标题】:Don't quite understand serving gzip (compressed) JavaScript and CSS files不太了解提供 gzip(压缩)JavaScript 和 CSS 文件
【发布时间】:2014-06-29 14:54:05
【问题描述】:

提供压缩的 JavaScript 和 CSS 文件有什么意义?我知道它的文件大小较小,但浏览器/网络服务器不需要解压缩它来阅读吗?我读过网络服务器处理压缩。这是否意味着在我们的 HTML 文档中我们链接 foobar.css.gz 而不是 foobar.css

JS 和 CSS 文件的整个压缩究竟是如何工作的?为什么有用?这有什么缺点吗?如何做到这一点?

【问题讨论】:

  • 文件更小。是的。不,使用服务器软件。较小的文件大小。并不真地。取决于服务器软件。
  • 网络带宽比计算带宽更稀缺,因此压缩文件(透明 - 不更改文件名)可以节省时间。现代客户端(甚至手机)可以轻松处理解压缩文件的工作。压缩算法旨在使解压缩比压缩更容易

标签: javascript html css apache nginx


【解决方案1】:

解压缩 HTTP 响应所需的 CPU 时间往往比通过网络传输额外字节所需的时间短得多。

大多数使用 HTTP 压缩的系统都是即时进行的,并且不需要发布者存储压缩的 .gz 文件。

实现它的具体细节取决于您使用的网络服务器。由于您使用两个不同的服务器对此进行了标记,因此很难说在您的情况下如何解决它。不过,您的服务器手册应该对此进行说明。

【讨论】:

  • 这是否意味着我们可以同时发送所有.png.jpg 压缩图像以保留网络带宽?
  • 可以,但 PNG 和 JPEG 图像格式已内置压缩功能,因此不会产生显着差异。
【解决方案2】:

你是对的 - 它是一个较小的文件大小,浏览器确实需要解压缩它。但是从服务器到浏览器的较小文件大小是重要的部分(它节省了服务器和浏览器的带宽,这通常需要花钱)。

解压缩这些小文件往往也非常快,比下载额外数据要快。

你怎么做取决于你的服务器,我知道对于 apache 你可以使用mod_deflate,你只需要在服务器上设置它,它会在发送文件时自动压缩文件,你不需要需要更改您的任何网页或任何内容。

【讨论】: