The X-Forwarded-Host HTTP request header is used to forward the original Host HTTP request header value to the origin server. This can be useful if a proxy rewrites the Host header.
When a http request is made to a webapplication, the browser will add a Host http request header to the request. The value of this header will be domain name that the request is made to. This header can be used by the server to determine which website user is trying to visit. (eg in case of virtual hosting many websites are hosted on same server). If the request goes reverse proxy, the the Host header will contain the value of the reverse proxy itself.(proxy rewrites the host header ) .The proxy will also add/rewrites headers (X-Forwarded-For,X-Forwarded-Host,X-Forwarded-Port,X-Forwarded-Proto) .In order to know to the original host, the X-forwarded-Host can be used. This header contains what the proxy initially received as Host.