X-Forwarded-Host 【XFH】
概要
X-Forwarded-Host(XFH)とは、HTTPヘッダのフィールド(項目)の一つで、リバースプロキシやロードバランサがWebサーバに対して本来クライアントが指定したHostヘッダの内容を通知するためのもの。正式な規格には含まれないが事実上の標準として普及している。負荷分散などのためにリバースプロキシやロードバランサ、CDN(Content Delivery Network)サービスなどを利用すると、クライアントは中継システムを介してWebサーバと通信することになる。その際、中継機器はHTTPリクエスト中の「Host:」ヘッダを実際のWebサーバのホスト名やIPアドレスなどに書き換えて転送する場合がある。
クライアントが発信したHTTPリクエストに記載されていた「Host:」が何だったのかはWebサーバ側では分からなくなってしまうため、中継機器が「X-Forwarded-Host: クライアントが指定したHostヘッダの内容」を追加することで、Webサーバに本来のHostヘッダの内容を通知する。
「X-」から始まるHTTPヘッダ項目は非標準で慣用的に用いられるものだが、多くのWebサーバやリバースプロキシなどが対応しており、事実上の標準となっている。現在は標準仕様として「Forwarded:」ヘッダが策定されており、X-Forwarded-Hostや、同じ目的で用いられるX-Forwarded-For、X-Forwarded-Protoなどの機能を吸収している。
(2023.6.14更新)