2012-04-29 9 views
16

プロキシサーバーによってサーバーに転送される前に、HTTPヘッダーに追加または変更された要求ヘッダーはありますか?HTTPプロキシサーバーは要求パケットを変更しますか?

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

答えて

25

プロキシサーバーにはいくつかの種類があります。要求ヘッダーについて言及してきたので、HTTPプロキシサーバーについて話していると仮定します.HTTPプロキシサーバーは、HTTP要求を転送するもので、パケットは転送しません。

注:(CONNECT経由でTLS/SSL)HTTPS requestsの特殊な場合には、プロキシサーバだけでTCPパケットの内容を転送する(とman-in-the-middleプロキシとして動作しない限り、パケットを検査することはできません)します。もちろん


それは、プロキシソフトウェアとその構成によって異なりますが、HTTPプロキシは、最も意義が多くのことを述べているが、W3C Guidelines for Web Content Transformation Proxiesを、従うことを期待次のとおりです。

  • HEADGETの間で変換する以外に、プロキシは要求メソッドを変更してはなりません。

  • Cache-Control: no-transformディレクティブが含まれている場合、プロキシは、RFC 2616 HTTPセクション14.9.5セクションと13.5.2セクションで定義されているトランスペアレントHTTP動作を遵守し、 4.1.6 Additional HTTP Header Fields

  • User-AgentAcceptAccept-CharsetAccept-Encoding、及びAccept-Languageヘッダフィールド以外のヘッダフィールドの値を変更してはならないRFC 2616 HTTPプロキシによって必要な変更以外

    とヘッダフィールドを削除してはなりません。

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

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


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

  • User-Agent
  • Accept
  • Accept-Charset
  • Accept-Encoding
  • Accept-Language
  • X-Forwarded-For
  • Via
+0

私は一部、 "前方の要求ではないパケットを" 得ることはありません。着信パケットからhttp要求を再構築してから変更することを意味しますか? – Ashwin

+0

@Ashwin:あなたはここでHTTPプロトコルを誤解していると思います。 HTTPはアプリケーションプロトコルで、[OSIモデル](http://en.wikipedia.org/wiki/OSI_model)の_application_層にあります。すべてのHTTP 'パケット'は実際にはTCPパケットであり、HTTPはパケットを直接処理しません(これはすべて[OSIモデル](http://en.wikipedia.org/wiki/OSI_model)の_transport_および_network_レイヤーで発生します) )。 – Xenon

+0

"www.google.com"のようなbowserでリクエストすると、このリクエストはアプリケーションレベル(ブラウザ)から物理レベル(NIC)に移動します。プロキシサーバーはそれを取得し、次に物理レベルのデータをレイヤー2にデコードし、転送する(レイヤー4)。ここでデータを変更して、それを正しく転送しますか? – Ashwin

関連する問題