Принцип работы HTTP proxy сервера

shestale

Ассоциация VN/VIP
Преподаватель
Сообщения
9,327
Реакции
3,980
HTTP proxy сервер – это сервер, который обрабатывает HTTP запросы клиентов. Если клиенты имеет общую организацию или домен, или они проявляют подобие в просмотре документов, proxy может эффективно кэшировать запрошенные документы. Кэширование, которое перемещает документы из сети ближе к пользователям, разгружает сетевой траффик, снижает нагрузку на популярных серверах Web и уменьшает время, в течении которого конечные пользователи ждут запрашиваемые документы.

Proxy сервер принимает запросы от клиентов. Когда это возможно и желательно, он генерирует ответ, основанный на документах, сохранённых в локальном кэше. Иначе, он направляет запрос удалённому серверу, а полученный ответ направляет клиенту, и если ответ был удачен, кэширует его. На рисунке 3.3 схематически показана работа кэширующего proxy-сервера.


Image3.gif

Рис. Передача информации через кэширующий proxy-сервер

Таким образом, proxy-сервер действует, и как сервер и как клиент. Он выступает в качестве сервера при приёмке HTTP запросов от клиентов, и клиентом по отношению к удалённым серверам, с которыми он устанавливает связь, когда не способен ответить на запрос, воспользовавшись данными из локального кэша.

Рассмотрим работу proxy сервера более подробно. Когда proxy-сервер начинает работать, он находится в состоянии ожидания запросов от клиентов на специальный порт (по умолчанию 8080). После получения, для каждого запроса создаётся новый поток для обработки. Поток обработки анализирует запрос.


Если запрос должен извлечь документ (обозначается методом запроса “GET”), тогда, если выполняются все ниже перечисленные условия, то документ берётся из кэша и направляется клиенту, при этом число удачного использования кэша увеличивается на единицу (cache hit):

  • необходимый документ имеется в кэше;
  • в запросе не указано, что документ нельзя взять из кэша (pragma “no cache” не задана в запросе);
  • в запросе не определена временная область “if-modified-since”;
  • сервер, с которого запрашивается документ, не входит в список серверов, доступ к которым осуществляется без proxy.
Во всех остальных случаях запрос будет послан удалённому серверу, с которого запрашивается документ, или другому proxy-серверу, если таковой был определён. При этом число неудачного использования кэша (cache misses), будет увеличено на единицу.

Ответ от удалённого сервера передаётся клиенту. В добавление к этому в случае удачного ответа на запрос (что обозначается кодом 200 ответа удалённого сервера) и при условии, что сервер не находиться в списке серверов, доступ к которым осуществляется без proxy, найденный документ будет сохранён в кэше на локальном диске. При этом необходимо отметить, что всякий раз, когда получена новая версия кэшируемого документа (например, при ответе на запрос, содержащий поле “if-modified-since”), она заменяет более старую версию в кэше.

Статистика, накопленная в течении транзакции с удалённым сервером (время соединения, ширина пропускной полосы) используется для модификации статистической базы данных сервера.
источник
 
Назад
Сверху Снизу