Прокси-серверы и туннелирование
Прокси-серверы и туннелирование
При навигации по различным сетям Интернета прокси-серверы и HTTP-туннели обеспечивают доступ к контенту во Всемирной паутине. Прокси может находиться на локальном компьютере пользователя или где-либо между компьютером пользователя и целевым сервером в Интернете. На этой странице изложены некоторые основы работы прокси и описаны несколько вариантов их настройки.
Существует два типа прокси: прямые прокси (или туннели, или шлюзы) и обратные прокси (используются для управления доступом к серверу и его защиты, а также для балансировки нагрузки, аутентификации, расшифровки или кэширования).
Прямые прокси
Прямой прокси, или шлюз, или просто «прокси» предоставляет услуги прокси клиенту или группе клиентов. В Интернете, вероятно, находятся сотни тысяч общедоступных прямых прокси. Они хранят данные интернет-сервисов (например, DNS или веб-страницы) и пересылают их, чтобы уменьшить и контролировать пропускную способность, используемую группой.
Прямые прокси также могут быть анонимными и позволять пользователям скрывать свой IP-адрес при просмотре веб-страниц или использовании других интернет-сервисов. Например, Tor направляет интернет-трафик через несколько прокси для обеспечения анонимности.
Обратные прокси
Как следует из названия, обратный прокси делает противоположное тому, что делает прямой прокси: прямой прокси действует от имени клиентов (или запрашивающих хостов). Прямые прокси могут скрывать идентификаторы клиентов, а обратные прокси — серверов. Обратные прокси используют в различных целях, например:
- Балансировка нагрузки: распределение нагрузки между несколькими веб-серверами;
- Кэширование статического контента: снижение нагрузки на веб-серверы за счёт кэширования статического контента, например изображений;
- Сжатие: сжатие и оптимизация контента для ускорения загрузки.
Передача информации о клиенте через прокси
Прокси могут создавать впечатление, что запросы исходят с IP-адреса прокси. Это может быть полезно, если прокси используется для обеспечения анонимности клиента, однако в других случаях информация из исходного запроса теряется. IP-адрес исходного клиента часто используют для отладки, сбора статистики или создания контента с учётом местоположения. Обычно эту информацию передают с помощью следующих HTTP-заголовков:
Стандартизированный заголовок:
Forwarded-
Содержит информацию со стороны прокси-серверов, обращённой к клиенту, которая изменяется или теряется, когда прокси участвует в обработке запроса.
Или фактические стандартные версии:
-
X-Forwarded-For -
Указывает исходные IP-адреса клиента, подключающегося к веб-серверу через HTTP-прокси или балансировщик нагрузки.
-
X-Forwarded-Host -
Указывает исходный хост, к которому клиент обращался при подключении к вашему прокси или балансировщику нагрузки.
-
X-Forwarded-Proto -
Указывает протокол (HTTP или HTTPS), который клиент использовал для подключения к вашему прокси или балансировщику нагрузки.
Чтобы предоставить информацию о самом прокси (а не о подключающемся к нему клиенте), можно использовать заголовок Via.
Via-
Добавляется прокси — как прямыми, так и обратными — и может присутствовать в заголовках запросов и ответов.
HTTP-туннелирование
Туннелирование передаёт данные частной сети и сведения о протоколе через общедоступную сеть, инкапсулируя данные. При HTTP-туннелировании для передачи протокола более низкого уровня (TCP) используется протокол более высокого уровня (HTTP).
Протокол HTTP определяет метод запроса CONNECT. Он устанавливает двустороннюю связь с запрошенным ресурсом и может использоваться для открытия туннеля. Благодаря этому клиент, находящийся за HTTP-прокси, может получать доступ к веб-сайтам с использованием TLS (то есть HTTPS, порт 443). Однако не все прокси-серверы поддерживают метод CONNECT или могут ограничивать его использование только портом 443.
См. также статью о HTTP-туннеле в Википедии.
Автоматическая настройка прокси (PAC)
Файл автоматической настройки прокси (PAC) содержит функцию на языке JavaScript, которая определяет, отправлять ли запросы веб-браузера (HTTP, HTTPS и FTP) непосредственно к месту назначения или перенаправлять их на веб-прокси-сервер. Функция JavaScript в файле PAC определяет функцию:
Файл автоматической настройки следует сохранить с расширением .pac: proxy.pac.
Для него следует установить тип MIME application/x-ns-proxy-autoconfig.
Файл содержит функцию с именем FindProxyForURL. Пример ниже будет работать в среде, где внутренний DNS-сервер настроен так, что может разрешать имена только внутренних хостов, а прокси требуется использовать только для хостов, имена которых не удаётся разрешить:
function FindProxyForURL(url, host) {
if (isResolvable(host)) {
return "DIRECT";
}
return "PROXY proxy.example.com:8080";
}
См. также
© 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/Guides/Proxy_servers_and_tunneling