プロキシサーバーによってサーバーに転送される前に、HTTPリクエストにリクエストヘッダーが追加または変更されていますか?
もしそうなら、変更は同じパケットに加えられますか、それともその内容は変更された新しい要求パケットを作成するために使用されますか?
プロキシサーバーにはいくつかの種類があります。リクエストヘッダーについて説明したので、パケットではなくHTTPリクエストを転送するHTTPプロキシサーバーについて話していると仮定します。
注:HTTPSリクエストの特殊なケース ( CONNECT
経由のTLS/SSL)、プロキシサーバーwillTCPパケットの内容を転送するだけです(そして man-in-the-middle として機能しない限り、パケットを検査することはできません)プロキシ)。
もちろん、プロキシソフトウェアとその構成によって異なりますが、HTTPプロキシはexpectedW3CWebコンテンツ変換プロキシのガイドライン、これは多くのことを述べていますが、最も関連性があります:
HEAD
プロキシとGET
プロキシの間で変換する以外に、リクエストメソッドを変更してはなりません。
リクエストにCache-Control: no-transform
ディレクティブが含まれている場合、プロキシは、RFC 2616 HTTPセクションセクション14.9.5およびセクション13.5.2で定義されている透過的なHTTP動作に準拠し、 4.1.6で説明されているようにヘッダーフィールドを追加する以外に、リクエストを変更してはなりません。追加のHTTPヘッダーフィールド 。
RFC 2616 HTTPプロキシで必要な変更以外は、User-Agent
、Accept
、Accept-Charset
、Accept-Encoding
、およびAccept-Language
ヘッダーフィールド以外のヘッダーフィールドの値を変更してはならず、ヘッダーフィールドを削除してはなりません。
プロキシは、リクエストのイニシエーターのIPアドレスを X-Forwarded-For
HTTPヘッダーフィールドのコンマ区切りリストの最後に追加する必要があります。
プロキシには(RFC 2616に従って)Via
HTTPヘッダーフィールドを含める必要があります。
要約すると、一般的に、これらのHTTPヘッダーは、標準に準拠したプロキシによって変更/追加されることが期待できます。
User-Agent
Accept
Accept-Charset
Accept-Encoding
Accept-Language
X-Forwarded-For
Via