【问题标题】:How do I set up gzip compression on a web server?如何在 Web 服务器上设置 gzip 压缩?
【发布时间】:2008-10-17 14:28:51
【问题描述】:

我有一个嵌入式网络服务器,它总共有 2 兆的空间。通常你 gzip 文件是为了客户的利益,但这会节省我们在服务器上的空间。我读到您可以只压缩 js 文件并将其保存在服务器上。我在 IIS 上进行了测试,但我一点运气都没有。在此过程的每个步骤中,我究竟需要做什么才能完成这项工作?

这是我想象中的样子:

  1. gzip foo.js
  2. 将 html 中的链接更改为指向 foo.js.gz 而不仅仅是 .js
  3. 在响应中添加某种标头?

非常感谢您的帮助。

-fREW

编辑:我的网络服务器无法即时执行任何操作。它不是 Apache 或 IIS;它是 ZiLog 处理器上的二进制文件。我知道你可以压缩流;我刚刚听说您也可以将文件压缩一次并保持压缩状态。

【问题讨论】:

    标签: javascript compression gzip


    【解决方案1】:

    正如其他人提到的那样, mod_deflate 会为您执行此操作,但我想您需要手动执行此操作,因为它是嵌入式环境。

    首先,您应该在 gzip 之后保留文件 foo.js 的名称。

    您不应更改 html 文件中的任何内容。由于文件仍然是 foo.js

    在 (gzipped) foo.js 的响应标头中发送标头

    Content-Encoding: gzip
    

    这应该可以解决问题。客户端请求 foo.js 并收到 Content-Encoding: gzip 后跟 gzip 压缩文件,它会在解析之前自动解压缩。

    当然这假设你确定客户端理解 gzip 编码,如果你不确定,你应该只在请求头包含时发送 gzip 压缩数据

    Accept-Encoding: gzip
    

    【讨论】:

    • 谢谢,如果您使用 Apache 提供文件,但又不想动态压缩(以节省服务器上的周期),如何控制此响应标头?
    【解决方案2】:

    在网络服务器上使用 gzip 压缩通常意味着压缩它的输出以节省您的带宽——这并不是您的想法。

    Look at this description 或者 This example

    【讨论】:

    • 我知道,但我读到你可以压缩静态文件,如果我能做到,我会做。
    【解决方案3】:

    如果您使用的是 Apache,则使用 mod_deflate,它会即时压缩。

    我认为如果您 gzip 某些内容必须是文件,您会感到困惑。相反,请考虑一下文件如何只是一个数据流,而该数据流可以在这里压缩、传输和解压缩,而客户端甚至无需考虑它。

    【讨论】:

      猜你喜欢
      • 2011-01-26
      • 1970-01-01
      • 2011-10-23
      • 2020-04-07
      • 1970-01-01
      • 2011-08-08
      • 2010-11-22
      • 1970-01-01
      • 2014-05-20
      相关资源
      最近更新 更多