2010-04-15 79 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緩存。

相關問題