X-Forwarded-Forとは一体何か。
一言で言ってしまうとHTTPのヘッダ情報の一つである。
これが一体何の役に立つのか?
例えば社内LANからブラウザで外部へアクセスする際にプロキシサーバーを経由するとする。
するとブラウザは外部へアクセスする際にプロキシサーバーを経由するので、アクセス先のサイトから見るとアクセス元のIPアドレスがプロキシサーバーのIPアドレスになってしまう。
これだけ聞けば大した問題ではないように思えるが、プロキシサーバーが多段である場合に、アクセス元による振り分けをしたい場合などに、そうすることができなくなる。
そのため、クライアントからのアクセス時にプロキシサーバーでクライアントのIPアドレスを取得し、それを「X-Forwarded-For」というHTTPヘッダに収めることでその先にあるプロキシサーバーなどでもそのヘッダ情報を見て判断できるようにしている。
またこれはアクセスログの取得の際に、このヘッダ情報を読み取ればよいというメリットもある。