Серверы-прокси и туннелирование
Серверы-прокси и туннелирование
При навигации по различным сетям Интернет серверы-прокси и HTTP-туннели обеспечивают доступ к контенту в мировой паутине. Прокси-сервер может находиться на локальном компьютере пользователя или где-либо между компьютером пользователя и целевым сервером в Интернете. На этой странице изложены некоторые основы прокси и представлены некоторые параметры конфигурации.
Существует два типа прокси-серверов: прямые прокси-серверы (или туннели, или шлюзы) и обратные прокси-серверы (используемые для управления и защиты доступа к серверу с целью балансировки нагрузки, аутентификации, дешифрования или кэширования).
Прямые прокси-серверы
Прямой прокси-сервер, или шлюз, или просто «прокси», предоставляет прокси-услуги клиенту или группе клиентов. В Интернете вероятно существуют сотни тысяч открытых прямых прокси-серверов. Они хранят и пересылают интернет-сервисы (например, DNS или веб-страницы), чтобы сократить и контролировать пропускную способность, используемую группой.
Прямые прокси-серверы также могут быть анонимными прокси и позволяют пользователям скрывать свой IP-адрес при просмотре веб-страниц или использовании других интернет-сервисов. TOR (The Onion Router) маршрутизирует интернет-трафик через несколько прокси-серверов для обеспечения анонимности.
Обратные прокси-серверы
Как следует из названия, обратный прокси-сервер делает противоположное тому, что делает прямой прокси-сервер: прямой прокси-сервер действует от имени клиентов (или запрашивающих хостов). Прямые прокси-серверы могут скрывать личности клиентов, в то время как обратные прокси-серверы могут скрывать личности серверов. Обратные прокси-серверы имеют несколько областей применения, некоторые из них:
- Балансировка нагрузки: распределение нагрузки между несколькими веб-серверами,
- Кэширование статического контента: разгрузка веб-серверов путем кэширования статического контента, такого как изображения,
- Сжатие: сжатие и оптимизация контента для ускорения времени загрузки.
Пересылка информации клиента через прокси-серверы
Прокси-серверы могут заставлять запросы выглядеть так, как будто они исходят с IP-адреса прокси-сервера. Это может быть полезно, если прокси-сервер используется для обеспечения анонимности клиента, но в других случаях информация из исходного запроса теряется. IP-адрес исходного клиента часто используется для отладки, статистики или генерации контента, зависящего от местоположения. Общий способ раскрытия этой информации — использование следующих HTTP-заголовков:
Стандартизированный заголовок:
Forwarded-
Содержит информацию со стороны клиента, обращенной к прокси-серверам, которая изменяется или теряется, когда прокси-сервер участвует в обработке запроса.
Или фактические стандартные версии:
-
X-Forwarded-ForНестандартный -
Определяет исходные IP-адреса клиента, подключающегося к веб-серверу через HTTP-прокси или балансировщик нагрузки.
-
X-Forwarded-HostНестандартный -
Определяет исходный хост, который клиент использовал для подключения к вашему прокси-серверу или балансировщику нагрузки.
-
X-Forwarded-ProtoНестандартный -
Определяет протокол (HTTP или HTTPS), который клиент использовал для подключения к вашему прокси-серверу или балансировщику нагрузки.
Для предоставления информации о самом прокси-сервере (а не о клиенте, подключающемся к нему), можно использовать заголовок Via.
Via-
Добавляется прокси-серверами, как прямыми, так и обратными, и может отображаться как в заголовках запроса, так и в заголовках ответа.
HTTP-туннелирование
Туннелирование передает данные и информацию о протоколе частной сети через общедоступную сеть путем инкапсуляции данных. HTTP-туннелирование использует протокол более высокого уровня (HTTP) для передачи протокола более низкого уровня (TCP).
Протокол HTTP определяет метод запроса под названием CONNECT. Он устанавливает двустороннее общение с запрашиваемым ресурсом и может использоваться для создания туннеля. Именно так клиенты, находящиеся за HTTP-прокси, могут получить доступ к веб-сайтам с использованием SSL (т.е. 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.mydomain.com:8080"; }
См. Автоматическая настройка прокси (PAC) для получения дополнительных примеров.
См. также
© 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/Proxy_servers_and_tunneling