過去 2 日間のコードをまとめて、HTTP 1.1/1.0 プロキシをサポートする SSL を作成しました。HTTPWebResponse/HTTPWebRequest クラスを使用して、サーバーからデータを取得しました。サーバーからデータを中継している間、ヘッダーを取得したらすぐに最初にブラウザーに送信し、次にサーバーからの応答ストリームを送信します。ストリーム リーダーを使用して読み取り、それをブラウザーに転送すると、応答が Chunked にHTTPWebresponse.GetResponseStream()
なると、ブラウザーがページの読み込みに失敗することに気付きました。しばらく時間を費やした後、GetResponseStream()
既にデチャンクされているように見えるため、ブラウザーはそれを解析できません (チャンクされた応答ヘッダーが既にブラウザーに送信されて混乱しているため)。チャンクされたヘッダーを削除し、チャンクresponsestream
せずに一緒に送信することで回避策を作成しました。
しかし、fiddlercore (ロイヤルティ フリーのプロキシ ライブラリ) が、私が行った回避策を実行せずにチャンク データを中継していることに気付きました。.NET で記述されているため、チャンクを 1 つずつ中継する方法があるはずです。
私の質問は、ストリームを使用するときにプロキシでチャックされた応答を適切に中継する方法ですか? また、プロキシがローカル マシンを対象としている場合、チャンクせずにブラウザにデータを一緒に送信するとパフォーマンスが低下しますか (プロキシはサーバーでチャンクを使用し、要求された場合はその逆を行います)。