The Forwarded
header contains information from the client-facing side of proxy servers that is altered or lost when a proxy is involved in the path of the request.
The alternative and de-facto standard versions of this header are the X-Forwarded-For
, X-Forwarded-Host
and X-Forwarded-Proto
headers.
This header is used for debugging, statistics, and generating location-dependent content and by design it exposes privacy sensitive information, such as the IP address of the client. Therefore the user's privacy must be kept in mind when deploying this header.
Header type | Request header |
---|---|
Forbidden header name | no |
Syntax
Forwarded: by=<identifier>; for=<identifier>; host=<host>; proto=<http|https>
Directives
- <identifier>
- An identifier disclosing the information that is altered or lost when using a proxy. This can be either:
- an IP address (v4 or v6, optionally with a port, and ipv6 quoted and enclosed in square brackets),
- an obfuscated identifier (such as "_hidden" or or "_secret"),
- or "unknown" when the preceding entity is not known (and you still want to indicate that forwarding of the request was made).
- by=<identifier>
- The interface where the request came in to the proxy server.
- for=<identifier>
- The client that initiated the request and subsequent proxies in a chain of proxies.
- host=<host>
- The
Host
request header field as received by the proxy. - proto=<http|https>
-
Indicates which protocol was used to make the request (typically "http" or "https").
Examples
Using the Forwarded
header
Forwarded: for="_mdn" # case insensitive Forwarded: For="[2001:db8:cafe::17]:4711" # separated by semicolon Forwarded: for=192.0.2.60; proto=http; by=203.0.113.43 # multiple values can be appended using a comma Forwarded: for=192.0.2.43, for=198.51.100.17
Transitioning from X-Forwarded-For
to Forwarded
If your application, server, or proxy supports the standardized Forwarded
header, the X-Forwarded-For
header can be replaced. Note that IPv6 address are quoted and enclosed in square brackets in Forwarded
.
X-Forwarded-For: 123.34.567.89 Forwarded: for=123.34.567.89 X-Forwarded-For: 192.0.2.43, 2001:db8:cafe::17 Forwarded: for=192.0.2.43, for="[2001:db8:cafe::17]"
Specifications
Specification | Title |
---|---|
RFC 7239, section 4: Forwarded | Forwarded HTTP Extension |
See also
X-Forwarded-For
X-Forwarded-Host
X-Forwarded-Proto
Via
– provides information about the proxy itself, not about the client connecting to it.