Заголовки: Forwarded
Заголовок Forwarded
HTTP Forwarded заголовок запроса содержит информацию, которая может быть добавлена обратными прокси-серверами (балансировщиками нагрузки, CDN и т. д.), но в противном случае была бы изменена или потеряна при прохождении запроса через прокси-серверы.
Например, если клиент подключается к веб-серверу через HTTP-прокси (или балансировщик нагрузки), журналы сервера будут содержать только IP-адрес, адрес хоста и протокол прокси-сервера; этот заголовок можно использовать, чтобы определить IP-адрес, хост и протокол исходного запроса. Заголовок является необязательным: любой из прокси-серверов на пути к серверу может добавить, изменить или удалить его.
Этот заголовок используется для отладки, сбора статистики и создания контента с учётом местоположения. По своей природе он раскрывает конфиденциальную информацию, например IP-адрес клиента. Поэтому при использовании этого заголовка необходимо помнить о конфиденциальности пользователя.
Альтернативными и фактически общепринятыми версиями этого заголовка являются заголовки X-Forwarded-For, X-Forwarded-Host и X-Forwarded-Proto.
| Тип заголовка | Заголовок запроса |
|---|---|
| Запрещённый заголовок запроса | Нет |
Синтаксис
Forwarded: by=<identifier>;for=<identifier>;host=<host>;proto=<http|https>
Директивы представляют собой пары key=value, разделённые точкой с запятой.
Если между клиентом и сервером находятся несколько прокси-серверов, каждый из них может указать собственные сведения о пересылке. Это можно сделать, добавив новый заголовок Forwarded в конец блока заголовков или дописав информацию в конец последнего заголовка Forwarded в виде списка значений, разделённых запятыми.
Директивы
byНеобязательно-
Интерфейс, через который запрос поступил на прокси-сервер. Идентификатором может быть:
- скрытый идентификатор (например, «hidden» или «secret»). Его следует использовать по умолчанию.
- IP-адрес (IPv4 или IPv6, при необходимости с портом; адрес IPv6 заключается в кавычки и квадратные скобки)
- «unknown», если предшествующий узел неизвестен (но при этом нужно указать, что запрос был перенаправлен)
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 можно заменить. Обратите внимание: в Forwarded адрес IPv6 заключается в кавычки и квадратные скобки (в отличие от заголовка X-Forwarded-For).
X-Forwarded-For: 192.0.2.172 Forwarded: for=192.0.2.172 X-Forwarded-For: 192.0.2.43, 2001:db8:cafe::17 Forwarded: for=192.0.2.43, for="[2001:db8:cafe::17]"
Спецификации
| Спецификация |
|---|
| Расширение HTTP Forwarded> |
См. также
X-Forwarded-ForX-Forwarded-HostX-Forwarded-Proto-
Via— содержит сведения о самом прокси, а не о подключающемся к нему клиенте.
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Forwarded