クエリパラメータが付加されるGoogle、Yahooで検索。
検索結果をクリック。
ブラウザが白い画面になり、そのまま結果が返らない。
前提条件
・特定のお客様でのみ発生
・IE6でのみ発生
・全てのサイトが検索後に同じ症状になるわけではない
【発生原因について】
HTTP1.1 でクライアントがアクセスした場合、NetCacheがICAP連携している事により、
その返信には「Transfer- Encoding chunked」が使用されます。
(HTTP1.0のcontent lengthと比較して、データの終了を「0」として告げるもの)
NetCacheは全てのデータをクライアントへ返信していますが、
ブラウザ側がその受信内容(chunked data)を正しく処理できず、
この返信されたjavascript群が正しくIEにて処理されずに停止しているようです。
----------
調べたところ、あるjsonファイルのレスポンスが下記のようになっている
--------------------------------------------------------------------------------------
POST yyy.json
http://www.myserver.com/xxx/yyy.json
200 OK
myserver.com
52.7 KB
640ms
パラメータヘッダPOSTPUTレスポンスキャッシュHTMLJSON
レスポンスヘッダソース表示
Date Mon, 27 Dec 2010 10:51:56 GMT
Etag W/"269287-1293447004000"
Last-Modified Mon, 27 Dec 2010 10:50:04 GMT
Vary Accept-Encoding,User-Agent
Content-Encoding gzip
Keep-Alive timeout=10, max=289
Connection Keep-Alive
Transfer-Encoding chunked
Content-Type application/json
--------------------------------------------------------------------------------------
開発機で再現できないのは未だに謎です。。。
参考に、もしかしたら
http://ameblo.jp/phpwalker/entry-10444869607.html
apacheの設定にある
# deflate setting
# Insert filter
SetOutputFilter DEFLATE
# Netscape 4.x has some problems...
BrowserMatch ^Mozilla/4 gzip-only-text/html
# Netscape 4.06-4.08 have some more problems
BrowserMatch ^Mozilla/4\.0[678] no-gzip
# MSIE masquerades as Netscape, but it is fine
BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html
# Don't compress images
SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png|zip|swf)$ no-gzip dont-vary
# Make sure proxies don't deliver the wrong content
Header append Vary User-Agent env=!dont-vary
の
SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png|zip|swf)$ no-gzip dont-vary
を
SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png|zip|swf|json)$ no-gzip dont-vary
と変更したら、レスポンスは下記のように変わりました。
Date Fri, 28 Jan 2011 08:43:58 GMT
Etag W/"228501-1296204003000"
Last-Modified Fri, 28 Jan 2011 08:40:03 GMT
Content-Length 228501
Keep-Alive timeout=5, max=74
Connection Keep-Alive
Content-Type application/json
うまく治りましたね、
これで、WWWへ公開してYahoooやGoogleから開いた場合に確認したいです。
0 件のコメント:
コメントを投稿