X-Forwarded-Proto 【XFP】
概要
X-Forwarded-Proto(XFP)とは、HTTPヘッダのフィールド(項目)の一つで、リバースプロキシやロードバランサがWebサーバに対して、それらの機器とクライアントの間の通信に用いられたプロトコル(HTTPかHTTPSか)を通知するためのもの。正式な規格には含まれないが事実上の標準として普及している。負荷分散などのためにリバースプロキシやロードバランサ、CDN(Content Delivery Network)サービスなどを利用すると、クライアントは中継システムを介してWebサーバと通信することになる。その場合、クライアントから中継機器までの間が素朴なHTTP通信だったのか、SSL/TLSで暗号化されたHTTPS通信だったのか直接知ることはできない。
中継機器はWebサーバに転送するHTTPリクエストにX-Forwarded-Protoというヘッダ項目を追加し、「http」あるいは「https」のいずれかの値をセットする。これによりWebサーバはクライアントと中継機器の間の通信方式を知ることができる。
「X-」から始まるHTTPヘッダ項目は非標準で慣用的に用いられるものだが、多くのWebサーバやリバースプロキシなどが対応しており、事実上の標準となっている。現在は「Forward:」ヘッダが策定されており、X-Forwarded-Protoや、同じ目的で用いられる「X-Forwarded-For」「X-Forwarded-Host」などの機能を吸収している。
なお、同じ目的で追加された独自の拡張ヘッダがいくつかある。「Front-End-Https」(on/off)、「X-Forwarded-Protocol」(http/https)、「X-Forwarded-Ssl」(on/off)、「X-Url-Scheme」(http/https)などである。いずれも意味は機能は同様である。
(2023.6.15更新)