2006年05月20日

Heimdallrのホントのバグ対策その2

5/19の記事の続きです。

このバグの対策としてMicrosoftが提示しているのは、以下の2点を行うことです。
(1) HttpOpenRequestの第4引数を"HTTP/1.0" とする。
(2) Internet Explorerの詳細設定の「HTTP 1.1 を使用する」をOFFにする。

HTTP 1.0を使うだけなのになんでInternet Explorerの詳細設定を変更する必要があるんでしょうね。
ちょっと疑問に思ったので、これらの設定を変更した結果、リクエストヘッダのバージョンがどうなるのか調べてみました。

HttpOpenRequestの第4引数詳細設定の「HTTP 1.1を使用する」リクエストヘッダのバージョン
NULLONHTTP/1.1
NULLOFFHTTP/1.0
"HTTP/1.0"ONHTTP/1.1
"HTTP/1.0"OFFHTTP/1.0
"HTTP/1.1"ONHTTP/1.1
"HTTP/1.1"OFFHTTP/1.1

(1)の実施は必須ではなく、HttpOpenRequestの第4引数はNULLでも良いようですが、残念ながら、(2)の実施は必須のようです。(2)を実施しないと、HTTP 1.0を使うことはできません。HttpOpenRequestの第4引数がどうあれ、強制的にHTTP 1.1になってしまうようです。うーん。

投稿者 MASATO : 2006年05月20日 19:39 | トラックバック
コメント

これって不具合なんですね・・・。
私も"Internet Explorerの詳細設定の「HTTP 1.1 を使用する」をOFFにする。"とするべきじゃないかと思っていますが、今までHTTP 1.1を使っていたアプリケーションがみんなHTTP 1.0を使うようになってしまうので、副作用が怖いですね。

Posted by: MASATO : 2006年05月21日 21:34

テストする時間が取れたので試してみたのですが、
こういうオチがあるようです。
http://support.microsoft.com/default.aspx?scid=kb%3Bja%3B258425

InternetSetOptionでの指定も同様でした。

InternetOpen時にINTERNET_OPEN_TYPE_DIRECT ならばレジストリ
設定の参照が無さそうなのでOKかな?と推測したのですが、これもダメでした。
一時的にレジストリを操作する方法もありますが… マズイですよね。

このような現象が頻発しているユーザーに対しての私の結論は、
他のWinInetアプリケーションでも現象が発生する可能性を考えると
"Internet Explorerの詳細設定の「HTTP 1.1 を使用する」をOFFにする。"
でしょうか。

こういう不具合って困りますよね~。
(ちなみに IE7がインストールされている環境でも改善されていません)

Posted by: t.o : 2006年05月21日 10:40
コメントする









名前、アドレスを登録しますか?