Пересылаемый
Пересылаемый
Заголовок запроса Forwarded содержит информацию, которую могут добавить обратные прокси-серверы (балансировщики нагрузки, CDN и т. д.), которая иначе была бы изменена или потеряна, если бы прокси-серверы участвовали в обработке запроса.
Например, если клиент подключается к веб-серверу через HTTP-прокси (или балансировщик нагрузки), в журналы сервера будет включён только IP-адрес, адрес хоста и протокол прокси; этот заголовок может использоваться для идентификации IP-адреса, хоста и протокола исходного запроса. Заголовок является необязательным и может быть добавлен, изменён или удалён любым из прокси-серверов на пути к серверу.
Этот заголовок используется для отладки, статистики и генерации контента, зависящего от местоположения. По своему назначению он раскрывает чувствительную к конфиденциальности информацию, такую как IP-адрес клиента. Поэтому при развертывании этого заголовка необходимо учитывать конфиденциальность пользователя.
Альтернативные и фактические стандартные версии этого заголовка — X-Forwarded-For, X-Forwarded-Host и X-Forwarded-Proto заголовки.
| Тип заголовка | Заголовок запроса |
|---|---|
| Запрещённое имя заголовка | нет |
Синтаксис
Синтаксис заголовка пересылки от одного прокси показан ниже. Директивы являются key=value парами, разделёнными точкой с запятой.
Forwarded: by=<identifier>;for=<identifier>;host=<host>;proto=<http|https>
Если между клиентом и сервером находится несколько прокси-серверов, каждый из них может указать свою пересылаемую информацию. Это можно сделать, добавив новый Forwarded заголовок в конец блока заголовков или добавив информацию в конец последнего заголовка Forwarded в виде списка, разделённого запятыми.
Директивы
-
byНеобязательно -
Интерфейс, через который запрос пришёл на прокси-сервер. Идентификатор может быть:
- замаскированным идентификатором (таким как «скрытый» или «секретный»). Это следует рассматривать как значение по умолчанию.
- IP-адресом (v4 или v6, необязательно с портом, и ipv6 заключён в квадратные скобки).
- «неизвестно», если предыдущий элемент неизвестен (и вы всё ещё хотите указать, что пересылка запроса была выполнена)
-
forНеобязательно -
Клиент, который инициировал запрос и последующие прокси в цепочке прокси. Идентификатор имеет те же возможные значения, что и директива
by. -
hostНеобязательно -
Поле заголовка запроса
Host, полученное прокси. -
protoНеобязательно -
Указывает протокол, использованный для отправки запроса (обычно «http» или «https»).
Примеры
Использование заголовка Forwarded
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 # Values from multiple proxy servers can be appended using a comma Forwarded: for=192.0.2.43, for=198.51.100.17
Переход от X-Forwarded-For к Forwarded
Если ваше приложение, сервер или прокси поддерживают стандартизированный заголовок Forwarded, заголовок X-Forwarded-For можно заменить. Обратите внимание, что IPv6-адрес заключён в квадратные скобки в 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]"
Спецификации
| Спецификация |
|---|
| Расширение HTTP Forwarded # раздел-4 |
См. также
X-Forwarded-ForX-Forwarded-HostX-Forwarded-Proto-
Via— предоставляет информацию о самом прокси, а не о клиенте, подключающемся к нему.
© 2005–2022 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Forwarded