奇怪的http gzip问题

时间:2009-04-10 02:07:50

标签: php apache firefox gzip nginx

这是一个奇怪的:

我已经使用mod_php将nginx反向代理请求apache 2。

一位用户(使用firefox 3.1b3)报告说,他最近在正常导航期间开始零星"What should firefox do with this file?" popups。我们还没有关于此问题的任何其他报告,也无法自行复制。

我检查了Nginx和apache的日志。错误日志中没有任何内容,它们都显示请求的正常HTTP 200。

我让他把下载的文件发给我,它生成的HTML应该是 - 除了它有一些尾随和前导字节。

开放字节序列是神奇的gzip标头:1F8B08

以下是开场角色,为方便起见进行了C转义:

\x1F\x8B\x089608\r\n<!DOCTYPE HTML ...

,文件以:

结尾
...</html>\n\r\n0\r\n\r\n

当我通过wget获取相同的URL时,它会按预期开始;神秘的开始和结束字节无处可见。

有没有人见过类似的东西?这可能是一个FF 3.1b3错误吗?

2 个答案:

答案 0 :(得分:1)

从未见过这样的问题,但我确实遇到过一个透明代理的问题,该代理会向Web服务器声称它可以处理gzip压缩内容,实际上它从服务器接收了gzip压缩内容,剥离gzip标头而不解压缩,并将结果发送到浏览器。我们看到的行为就是您所描述的:保存/打开文件对话框,应该是一个普通的网页。在这种情况下,有问题的浏览器是IE。

我不确定你的问题是否相关,但是作为一个实验,你可以查看代理和Apache之间的请求,看看它们是否被gzip压缩,或者关闭Apache中的请求的gzip压缩并看看是否能解决问题。如果是这样,那么您的代理中可能存在gzip处理问题。

答案 1 :(得分:1)

wget不请求压缩响应。试试:

curl --compressed <URL>

您还可以尝试添加-v来打印响应标头,并检查是否正在返回合理的Content-Type