1. ホーム
  2. http

[解決済み] HTTP_CLIENT_IPとHTTP_X_FORWARDED_FORの違いは何ですか?

2022-02-25 22:20:08

質問

ヘッダー HTTP_X_FORWARDED_FOR は、プロキシを経由して HTTP リクエストを行うホストの ip-address を識別するためにプロキシサーバによって設定されます。私は、このヘッダが HTTP_CLIENT_IP も同様の目的で設定されています。

  1. との違いは何ですか? HTTP_CLIENT_IPHTTP_X_FORWARDED_FOR ?
  2. なぜ、一方が他方と異なる値を持つのでしょうか?
  3. これらのヘッダーの正確な定義に関するリソースはどこにありますか。

どのように解決するのですか?

これらのヘッダはどちらも公式には標準化されていません。そのため

  1. What is the difference between HTTP_CLIENT_IP and HTTP_X_FORWARDED_FOR? - とは言えません。プロキシによって、これらを実装している場合もあれば、していない場合もあります。実装はプロキシごとに異なるかもしれないし、そうでないかもしれない。標準の欠如は疑問符を産む。
  2. Why would one have different values than the other? - ポイント1参照。しかし、純粋に実用的な観点から、これらが異なる値を持つ唯一の理由は、複数のプロキシが関与している場合です。 X-Forwarded-For: ヘッダーは転送の連鎖の完全な追跡を含むかもしれませんが、一方 Client-IP: ヘッダーに実際のクライアントIPが含まれることになります。ただし、これは純粋な憶測です。
  3. Where can I find resources on the exact definition of these headers. - 無理でしょう。ポイント1参照。

があるようです。 デファクトスタンダードのようなもの についてです。 X-Forwarded-For: ヘッダが <ストライク それを定義するRFCがないため、これは当てにならない。 以下のコメントを参照してください。

余談ですが Client-IP: ヘッダーは、慣習上 X-Client-IP: これは「ユーザー定義」のヘッダーであるためです。