Qt はトンネル可能な HTTP プロキシと、キャッシュ専用の HTTP プロキシ型を区別します。どちらの名前にも HTTP が含まれますが、接続機能は異なります。

Qt の型接続の役割
HttpProxy外向き TCP 接続に対する HTTP CONNECT のサポート
HttpCachingProxy互換性のあるリクエストベースのクライアントでの通常の HTTP リクエスト
Socks5Proxy文書化されたトランスポート機能を備えた SOCKS5 のネゴシエーション

通常の HTTP リクエストを行う QNetworkAccessManager はリクエスト指向の型を使用できます。バイトトンネルが必要な QTcpSocket には TunnelingCapability を持つプロキシが必要です。Qt は、汎用 TCP ソケットで使用する場合にその機能なしでアプリケーション既定を設定しないよう特に警告しています。

エンドポイントを割り当てる前にプロトコル型を選びます。プロキシ認証なしで許可された公開 HTTP リクエストには、HTTP プロキシ一覧がアドレスを提供します。ただし Qt の型はそのリクエストに必要な機能を引き続き備えている必要があります。CONNECT サービスが使うポートを HttpCachingProxy に与えても、その Qt の選択に欠けた機能は追加されません。

キャッシュ専用というラベルは、すべての応答がリモートサーバーに保存または再利用されることも保証しません。これはクライアントインターフェースが対応するプロキシ利用の方式を表すもので、キャッシュの再利用は引き続き HTTP 応答ポリシーが決めます。

関連記事