web-dev-qa-db-ja.com

HTTPプロキシサーバーは要求パケットを変更しますか?

プロキシサーバーによってサーバーに転送される前に、HTTPリクエストにリクエストヘッダーが追加または変更されていますか?

もしそうなら、変更は同じパケットに加えられますか、それともその内容は変更された新しい要求パケットを作成するために使用されますか?

16
Ashwin

プロキシサーバーにはいくつかの種類があります。リクエストヘッダーについて説明したので、パケットではなく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-AgentAcceptAccept-CharsetAccept-Encoding、およびAccept-Languageヘッダーフィールド以外のヘッダーフィールドの値を変更してはならず、ヘッダーフィールドを削除してはなりません。

  • プロキシは、リクエストのイニシエーターのIPアドレスを X-Forwarded-For HTTPヘッダーフィールドのコンマ区切りリストの最後に追加する必要があります。

  • プロキシには(RFC 2616に従って)ViaHTTPヘッダーフィールドを含める必要があります。


要約すると、一般的に、これらのHTTPヘッダーは、標準に準拠したプロキシによって変更/追加されることが期待できます。

  • User-Agent
  • Accept
  • Accept-Charset
  • Accept-Encoding
  • Accept-Language
  • X-Forwarded-For
  • Via
29
Xenon