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-ForX-Forwarded-Protoなどの機能を吸収している。

(2023.6.14更新)

HTTPの用語一覧