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