Win7 x64ボックスでInternet Explorer 8、Firefox 3.6、Chrome 8およびIIS 7.5を使用する。ヘッダーがそうであるにもかかわらず、IISがgzipをIEで使用していない場合
私はIHttpHandler(.NET 4)を使用してファイルを提供しています。
フィドラーによると、IE8から私のIISの要求は、それがGZIPを受け入れると言うが、それは返されません。
(loc.portal.comが実際に127.0.0.1であることに注意してください)
GET http://loc.portal.com/AdminCenter/FileHandler.ashx?ID=115 HTTP/1.1 Accept: application/x-ms-application, image/jpeg, application/xaml+xml, image/gif, image/pjpeg, application/x-ms-xbap, application/x-shockwave-flash, */* Accept-Language: en-US User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; MDDR; .NET4.0C; .NET4.0E; MS-RTC LM 8; InfoPath.3) Accept-Encoding: gzip, deflate Connection: Keep-Alive Host: loc.portal.com Cookie: LoginName=; ASP.NET_SessionId=d5qiw5nubkjd2r00gnebg3ar; .ASPXAUTH=BAEA blah blah
ヘッダーが返さIISからIEへ:
HTTP/1.1 200 OK Cache-Control: private Transfer-Encoding: chunked Content-Type: application/msword Server: Microsoft-IIS/7.5 Content-Disposition: attachment; filename="Roll Worksheet.doc" X-AspNet-Version: 4.0.30319 X-Powered-By: ASP.NET Date: Mon, 24 Jan 2011 20:53:34 GMT
これはgzippedではありません。 Firefoxで
が、しかし、要求は次のようになります。
GET http://loc.portal.com/AdminCenter/FileHandler.ashx?ID=115 HTTP/1.1 Host: loc.portal.com User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: en-us,en;q=0.5 Accept-Encoding: gzip,deflate Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 Keep-Alive: 115 Connection: keep-alive Referer: http://loc.portal.com/sb.cn Cookie: ASP.NET_SessionId=hw104pctkzrdtciwg4ihriqx; .ASPXAUTH=4FBB blah blah
応答、正しく、それはGZIPを返すと言う:
HTTP/1.1 200 OK Cache-Control: private Transfer-Encoding: chunked Content-Type: application/msword Content-Encoding: gzip Server: Microsoft-IIS/7.5 Content-Disposition: attachment; filename="Roll Worksheet.doc" X-AspNet-Version: 4.0.30319 X-Powered-By: ASP.NET Date: Mon, 24 Jan 2011 20:55:07 GMT
ChromeがFirefoxのようになります。それはgzipを要求し、gzipが返されます。 Fiddlerに表示されるコンテンツのサイズは、実際にはChromeとFirefoxでは本体がIEではなくgzipされていることがわかります。
IISで設定された「動的コンテンツ圧縮を有効にする」(静的コンテンツ圧縮と同様に)があります。私のIHttpHandlerは圧縮に関して特別なことをしておらず、ブラウザごとに異なるコードを実行していません。私は自分のプロジェクトのソースを探しましたが、 "gzip"という言葉はまったく表示されませんでした。私はどうして私がそれを誤って掘り下げてしまうのか分かりません。
IISがgzippedデータをIEに送信しない理由を理解するにはどうすればよいですか?
重要ですか?IEのユーザーはページの読み込みを遅くするために余分な秒が差をつけることはありません。ああ、これはServerFaultに属しています。 :) –
ServerFault ...おそらく。それはASP.NETの問題である可能性があり、したがって開発問題はサーバーの問題ではないようです。 「それは重要ですか?」に関して:おそらくそうではなく、それは私が奇妙な行動を理解していないことを夢中にしていることを正直に言うと、 :-) – mhenry1384
ええ、IEは私を狂ってしまうこともあります...私は唯一の人ではありませんが、私は今日よりも長く知っています。多分私のプロフィールページの伝記が役立つでしょう。 ; D –