Web-прокси
101C# и .NET --- Сетевое программирование --- Web-прокси
В локальной сети можно использовать прокси-сервер, чтобы направить интернет-доступ к конкретным серверам. Прокси-сервер может сократить число передач и сетевых соединений из Интернета и повысить благодаря кэшированию ресурсов производительность локальных клиентов.
Прокси-сервер выполняет активное и пассивное кэширование:
При пассивном кэшировании Web-pecypcы сохраняются в кэше прокси-сервера, как только клиент запрашивает ресурс. Если второй клиент запрашивает тот же самый ресурс, получать его снова от Web-сервера в Интернете не нужно, поскольку Web-прокси может ответить непосредственно из кэша, созданного при первом запросе.
С помощью активного кэширования системный администратор может сконфигурировать конкретные Web-серверы и каталоги, которые должны кэшироваться автоматически в соответствии со специальным расписанием, например в ночные часы. Этим способом пропускная способность, необходимая для Интернета, днем может быть сокращена, чтобы увеличить производительность для часто используемых страниц.
Прокси-сервер, настроенный по умолчанию, устанавливается из Internet Options в Control Panel. Кроме того, к средствам конфигурирования можно также получить доступ из Internet Explorer (Tools --> Internet Options --> Connections --> LAN Settings):
В данном случае Web-прокси-сервер имеет IP-адрес 172.31.24.21 и слушает порт 80. Этот прокси-сервер не должен использоваться для Web-серверов в интрасети. Через кнопку "Дополнительно" можно сконфигурировать разные прокси-серверы для разных протоколов (HTTP, HTTPS или FTP) и выбрать конкретные Web-сайты, к которым прокси-сервер не должен обращаться.
Класс WebProxy
Класс WebProxy используется для определения прокси-сервера. Свойства этого класса аналогичны настройкам, которые были рассмотрены вместе с конфигурированием прокси-сервера:
Свойства WebProxy | Описание |
---|---|
Address | Свойство Address имеет тип Uri и определяет URI прокси-сервера, IP-адрес или имя и номер порта. |
BypassList | В свойстве BypassList можно получать и устанавливать в массиве строк URI, которые не должны использовать прокси-сервер. |
BypassArrayList | BypassArrayList — это свойство только для чтения, возвращающее объект типа ArrayList, представляющий URI, которые устанавливаются в свойстве BypassList. |
BypassProxyOnLocal | BypassProxyOnLocal — это логическое свойство, указывающее, должны ли с прокси-сервером использоваться локальные адреса. |
Credentials | Если прокси-сервер требует аутентификации пользователя, в свойстве Credentials можно передать удостоверение личности пользователя. |
Вместо того, чтобы использовать установленный по умолчанию Web-прокси для всех запросов, можно выделить другой прокси для конкретных запросов. Для выбора другого прокси нужно лишь установить свойство Proxy класса WebRequest:
WebProxy wp = new WebProxy("92.168.1.100", true);
wp.Credentials = new NetworkCredential("user1", "user1Password");
WebRequest wrq = WebRequest.Create("http://www.example.com");
wrq.Proxy = wp;
WebResponse wrs = wrq.GetResponse () ;