質問
特定のコンテンツを応答から取り除くISAPIフィルターに取り組んでいます。ストリッピングしているコンテンツが送信バッファーと重複する可能性があるため、処理を行う前に応答のすべてのボディを収集する必要があります。
これを行うには、最後の通知に到達するまで、各 SF_NOTIFY_SEND_RAW_DATA
通知で応答コンテンツをバッファリングし、翻訳されたデータを送信します。どの SF_NOTIFY_SEND_RAW_DATA
が実際に最後であるかを判断する最良の方法を知りたいです。 SF_NOTIFY_END_OF_REQUEST
通知まで待つと、バッファリングしたデータの送信方法がわかりません。
1つのアプローチは、content-lengthを使用することです。これには、ヘッダーの終わりを検出する必要があります。また、content-lengthヘッダーが正しいと仮定する必要があります(保証されていますか?)。 HTTPはcontent-lengthヘッダーさえ必要としないので、常にそこにあるかどうかさえわかりません。もっと簡単な方法があるはずです。
応答がチャンク化されていないと想定しているため、応答の変更を行う前にデチャンク化を処理していません。また、応答本文に変更を加えても、応答本文のサイズは変わらないため、戻ってcontent-lengthを更新する必要はありません。
所属していません StackOverflow