2008-10-17 72 views
3

我有一个嵌入式网络服务器,共有2兆空间。通常情况下,你为客户提供的gzip文件是有好处的,但这会节省我们在服务器上的空间。我读过,你可以只是gzip js文件并将其保存在服务器上。我在IIS上测试过,并且我根本没有任何运气。为了完成这项工作,我需要在流程的每个步骤上做些什么?如何在Web服务器上设置gzip压缩?

这就是我想象它会像:

  1. 的gzip foo.js在HTML
  2. 变化链接指向而不是foo.js.gz只是.js文件
  3. 添加某种头部的响应?

感谢您的任何帮助。

-fREW

编辑:我的Web服务器不能做对飞任何东西。它不是Apache或IIS;这是ZiLog处理器上的一个二进制文件。我知道你可以压缩流;我刚刚听说你还可以压缩文件一次,并保持压缩。

回答

5

正如其他人已经提到mod_deflate为你做的,但我想你需要手动执行它,因为它是一个嵌入式环境。

首先你应该在gzip之后留下文件foo.js的名字。

你不应该改变你的html文件中的任何东西。由于该文件仍然foo.js

在(gzip压缩)的响应头foo.js您发送标题

Content-Encoding: gzip 

这应该做的伎俩。客户端请求foo.js并接收Content-Encoding:gzip,然后是gzip文件,它在解析之前会自动解压缩。

当然,这是假设你是确保客户明白gzip编码,如果你不知道,你应该只当请求头中包含

Accept-Encoding: gzip 
+0

谢谢,如果您使用Apache来提供文件,但不想在运行中压缩(以节省服务器上的周期),您如何控制此响应标头? – Bram 2014-01-25 01:11:34

1

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

Look at this descriptionThis example

+0

我知道,送gzip压缩的数据,但我已阅读,你可以压缩静态文件,如果我能做到这一点,我会做到这一点。 – 2008-10-17 14:35:54

1

如果你使用Apache,您使用mod_deflate,并将其压缩的飞行。

我认为你会因为认为如果gzip它必须是文件而感到困惑。相反,想想一个文件如何只是一个数据流,这个数据流可以在这里被压缩,传输和解压缩,而客户端甚至不必考虑它。