今日はWindowsのHTTPスタックを紹介します。
HTTPスタックとは、HTTPを使うための各種ライブラリを集めたものです。
図を書くと、各レイヤのライブラリを積み重ねたように見えるので、スタックと呼ぶのだそうです。
アプリケーションレイヤから見ると単なるライブラリに見えますけどね。
Windowsには、WinInetとWinHttpの2つのHTTPスタックがあります。 この2つのHTTPスタックの特徴を紹介します。
古いHTTPスタックですが、今でも広く使われています。 インターフェースはInternetOpenやInternetReadFileなどいくつかのWin32APIから構成されています。 プロキシ設定はInternetExplorerの設定から行います。HTTPだけではなく、FTPやGopherも使えます。
WinInetを使っているライブラリやツールは、以下のようなものがあります。
また、以下のような制約やバグを抱えています。
私にとってはつきあいの長いHTTPスタックですが、バグや制約が厳しいので、そろそろお別れしたいです。
新しいスタックですが、あまり広く使われていません。 インターフェースはWinHttp ActiveX オブジェクトが提供しています。 プロキシ設定は、proxycfgというWindows同梱のコマンドラインツールを使って行います。WinInetと違い、HTTPしか使えません。
WinHttpを使っているライブラリやツールは、以下のようなものがあります。
WinHttpの制約やバグはちょっと分かりません。WinInetが抱えている制約やバグは大体解決されているようです。
私にとっては今後お付き合いしたいHTTPスタックです。WinInetのバグにはもう近づきたくありません。 プロキシ設定がちょいと面倒なのが難点ですけどね。
一応最後に細くしておきますが、上記のバグやライブラリなどは、私が開発をしていく中で見つけたものなので、網羅的に探したものではありません。 抜けはそれなりにあると思いますのでご注意下さい。
投稿者 MASATO : 2006年10月23日 07:45 | トラックバック