Получение информации о промежуточных серверах

НТТР/1.1 уделяет больше внимания промежуточным средствам в цепи транзакций запрос-ответ. Промежуточное средство в НТТР/1.1 (прокси-сервер или шлюз) добавляет идентификационную информацию о себе и о том сервере, от которого он получил сообщение, в повом заголовке Via.

Заголовок Via является средством расширения и обеспечения взаимодействия для клиентов и серверов, использующих НТТР/1.1. Когда пользователь создает Web-запрос, то эгот запрос может пройти через несколько промежуточных серверов на пути к серверу-источнику. Промежуточные серверы могут быть прокси-серверами, шлюзами или впешиими интерфейсами серверов. Аналогично, Web-сервер может быть заинтересован в информации о различных промежуточных серверах, через которые проходит запрос. Фактически, любые из серверов, входящих в цепочку, могут быть заинтересованы в получении информации о промежуточных серверах. Здесь присутствует историческая апалогия с некоторыми командами, которые имеются на нижних уровнях стека протоколов. Способность отслеживать хосты по пути следования IP-накета была реализована в утилите traceroute [Jac] почти за десятилетие до появления Web. Заголовок Via является частичным воспроизведением этой возможности на более высоком уровне в стеке протоколов. Сам заголовок Via был создан после определения поля Received в RFC 822 (стандарт формата текстовых сообщений Internet [Cro82]). Он также похож на механизм в протоколе Border Gateway Protocol (BGP) [RL95, Ste99J, где каждая автономная система добавляет свой помер (ASN) к атрибуту AS-PATH.

До того как был предложен заголовок Via, существовало предложение по другому заголовку с пазвапием Forwarded [FFBL95]. Этог заголовок предназначался для указания переходов между клиентом и сервером в обоих направлениях. Но сюда включались только имена серверов между клиентом и Web-сервером. После добавления возможности получать информацию также и о версии протокола, заголовок Forwarded был переименован в заголовок Via.

Все НТТР/1.1 прокси-серверы и шлюзы обязапы участвовать (эго требование уровня MUST) в механизме Via. Промежуточные средства обязапы идентифицировать свое имя и помер версии предшествующего сервера, от которого получеп запрос или ответ. Из соображений конфиденциальности промежуточное средство может использовать псевдопим вместо настоящего имени хоста. Прокси-серверы или шлюзы, использующие НТТР/1.1 (хотя на практике прокси-серверы, использующие НТТР/1.0, также могут принимать в этом участие) добавляют идентификационную информацию к новому общему заголовку Via последовательно по мере продвижения от отправителя к получателю. Таким образом, конечный получатель имеет информацию о серверах по пути следования. хотя эго не гак уж необычно встретить прокси-серверы, использующие НТТР/1.0, которые были избирательно модернизированы, так чтобы они могли добавлять заголовок Via, большинству НТТР/1.0 прокси-серверов о механизме Via ничего неизвестно.

Например, сервер может получить следующий заголовок Via:

Via: 1.0 M-PR0XY3:8080 (Squid/2.1.PATCH2),

1.0                tl.us.irc.net:3128 (Squid/2.3.DEVEL1),

1.1                qd.us.ircache.net;3128 (Squid/2.3.DEVEL1)

указывающий, что на пути было три промежуточных сервера, участвовавших в механизме Via. Первый элемент в заголовке Via

1.0 M-PR0XY3:8080 (Squid/2.1.PATCH2)

указывает, что сервер, поддерживающий НТТР/1.0, иепосредственно предшествовал компьютеру M-PROXY3, и на нем функционировал прокси-сервер Squid 2.1 на порту 8080. Последним из промежуточных средств, участвовавших в механизме Via, является qd.us.ircache.net, на котором на порту 3128 функционировал прокси-сервер Squid 2.3, а его предшественником был сервер, поддерживающий НТТР/1.1.

После получения запроса исходному серверу известно сколько прокси-серверов/шлюзов, поддерживающих НТТР/1.1, было на пути сообщения и возможно ему также известно о тех серверах, поддерживающих НТТР/1.0, которые подключены к прокси-серверам, поддерживающим НТТР/1.1. С другой стороны, следует сделать поправку на то, что несколько прокси-серверов одной и той же версии под одним и тем же административным управлением, сгруннированные из соображений безопасности, могут помешать определить точное количество прокси-серверов на пути сообщения. Заголовок Via является сквозиым заголовком, и поэтому все промежуточные прокси-серверы пересылают его дальше.

Заголовок Via используется в сочетании с методом TRACE (обсуждался в разделе 7.7.1) для получения информации о пути, пройдепиом HTTP-сообщением. Заголовок Via включает информацию о различных прокси-серверах, поддерживающих НТТР/1.1, или шлюзах, которые могут располагаться на пути между клиентом и Web-сервером. Клиент все же не должен рассылать запрос TRACE по всему пути следования до Web-сервера, вместо этого запрос может быть послан одному из прокси-серверов, находящихся на пути сообщения. Возможно, это не одноразовое действие; клиенту может быть придется повторить эгу операцию несколько раз, пока оп сможет локализовать конкретный прокси-сервер. Несколько прокси-серверов под одним административным управлением, у которых один и тот же помер версии, часто груннируются и помечаются одной строкой в заголовке Via по соображениям обеспечения безопасности и копфидепциалыюсти. Также как и в методе OPTIONS, Можно использовать заголовок Max-Forwards, чтобы ограничить число переходов, которые пройдет запрос с методом TRACE.

Механизм Via также Можно иснользовать, чтобы избежать циклов на пути запроса. При обпаружепии своего имени в заголовке Via прокси-сервер может принимать решение о прекращении пересылки данного сообщения.

Источник: Web-протоколы. Теория и практика. — M.: ЗАО «Издательство БИНОМ», 2002 г. – 592 c.: ил.

Вы можете следить за любыми ответами на эту запись через RSS 2.0 ленту. Вы можете оставить ответ, или trackback с вашего собственного сайта.

Оставьте отзыв

XHTML: Вы можете использовать следующие теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

 
Rambler's Top100