2010-04-15 39 views
6

我一直在尝试调试几个星期。我家网络上所有客户端上的所有浏览器都发送'Accept-Encoding:gzip,deflate'。但是,该头部以某种方式在请求传送到Web服务器之前被丢弃。例如,http://www.whatsmyip.org/http_compression/表示'不,您的浏览器未请求压缩内容'。由浏览器发送但未被服务器接收的Accept-Encoding标头

我已经使用Fiddler来确保我的所有浏览器确实正在发送标题。我换掉了路由器。我关闭了所有的反病毒软件。

Brighthouse/Roadrunner(当地有线ISP)说他们没有做任何过滤(我不明白他们为什么会这样)。

任何建议将是最受欢迎的!

+0

这很奇怪。如果它发生在我身上,而其中一台机器是笔记本电脑,我会把它带到我附近的咖啡店,看看那里发生了什么。如果您可以发布在传出的HTTP请求中看到的所有标题,这可能会有所帮助。 – Pointy 2010-04-15 13:58:18

+0

为了完整起见,我会在稍后用笔记本电脑在咖啡店尝试。这里是我发送的标题: Host \t www.whatsthatbug.com User-Agent \t Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3 (.NET CLR 3.5.30729) Accept \t text/css,*/*;q=0.1 Accept-Language \t en-us,en;q=0.5 Accept-Encoding \t gzip,deflate Accept-Charset \t ISO-8859-1,utf-8;q=0.7,*;q=0.7 Keep-Alive \t 115 Connection \t keep-alive 但服务器没有看到'Accept-Encoding' – 2010-04-15 15:13:37

回答

2

尝试使用HTTPS。

如果您通过HTTPS浏览网站,浏览器和Web服务器之间无法更改请求或响应的任何HTTP级别方面,包括是否启用了压缩,而您没有立即和清楚地了解该内容其实(在你的浏览器地址栏中检查网站的证书,看看它是否合法)。

+0

好吧,我更改了我的Apache服务器上的日志以记录Accept-Encoding标头。日志中显示的是该字段的“ - ”。因此,在我的路由器和服务器(任何服务器,不只是我的)之间的某处,Accept-Encoding标头被剥离。现在我真的很困惑! – 2010-04-15 15:19:04

+0

如果您的Apache服务器负责SSL并拥有证书,如果您使用SSL进行此操作,您将能够看到是否有一个“中间人”正在动态更改请求。使用SSL,您的浏览器可以检测并警告您任何“中间人”摆弄请求。 – yfeldblum 2010-04-15 15:28:09

+0

因此,如果它是由我的浏览器生成的,它不会在我的网络上进行更改,它不会在中途更改,并且它不会在任何远程服务器上显示,Accept-Encoding标头的位置在哪里? – 2010-04-15 15:55:36

0

检查您的防病毒软件。它可能会拦截您的出站流量并动态修改标题以获取未压缩的内容。懒惰的程序员不喜欢自己包含解压缩方法,或者处理分块编码。

的Norton Internet Security将覆盖接受编码这一行:

--------------- ----- -------

迈克菲覆盖本:

X-McProxyFilter:*************

东西我还没有确定还没有覆盖这一点:

接受-Xncoding: gzip,deflate

你可能在同一条船上。我读Zone Alarm完全消除了编码头(这意味着重新计算数据包的大小,但他们为什么要关心它们在系统上引入了多少负载?)。如果您正在运行Zone Alarm,请关闭“Internet隐私选项”或其他任何内容,然后重试。

每当我看到这个问题,它一直是低级杀毒的结果。完全禁用某人接收压缩内容而不让他们知道的能力是肮脏的。

1

我有Accept-Xncoding问题,并确定它是CA Internet Security Suite引起的问题。禁用不够用,你必须卸载,然后清除IE缓存。

相关问题