WinHTTP

WinHTTPとは

HTTP通信を行うためにWindowsが内蔵しているコンポーネント(部品)の1つです。 何らかのアプリケーションがHTTP通信を行う際に、 部品としてWinHTTPを組み込んで利用します。

WinHTTPはHTTP通信に特化したコンポーネントで、 クライアント側とサーバー側の両方の機能があります。 Webクライアントとして外部のWebサーバーからデータをやりとりしたり、 Webサーバーとして外部のWebクライアントから接続される用途にも使用できます。

Windowsには似たような通信用コンポーネントとして「WinInet」がありますが、 こちらはクライアント機能のみで、 HTTP以外のFTPなどのいろいろなプロトコルにも対応したコンポーネントです。 WinHTTPはWinInetを発展させたもので、 WinInetよりもセキュリティ面で安全かつ強固なつくりとなっています。

WinHTTPを使っているプログラムとしてメジャーなのはWindows Updateです。 他にはMicrosoft 365(旧Office 3654)などのオンラインでアクティベーション (ライセンス認証)を行う場合のHTTP通信でも利用されています。

WinHTTP porxyの設定

プロキシ(代理サーバー)を通してHTTP通信を行う場合、 IEやEdgeなどのブラウザ側でプロキシの設定をしただけでは、 Windows Updateなどの WinHTTPでHTTP通信を行う際にエラーが発生する場合があります。 ブラウザでの設定とWinHTTPが参照している情報が異なるためです。

その場合、Windowsの「netsh」コマンドを使って「WinHTTP porxy」 を設定する必要があります。
設定方法や確認方法は次の通りです。

# 現在のプロキシ設定内容を確認
netsh winhttp show proxy

# プロキシの設定
netsh winhttp set proxy xxx.xxx.xxx.xxx:ポート番号

# プロキシの設定をリセット
netsh winhttp reset proxy

関連記事

IT基礎知識