Программирования сетевых взаимодействий в Java. Сухов С.А. - 25 стр.

UptoLike

Составители: 

25
2.2.2. Принципы построения HTTP-соединения
Протокол HTTP построен по модели «запрос/ответ». Иными словами,
клиент устанавливает соединение с сервером и отправляет запрос. В нем указан
тип запроса, URL (URI, URN), версия протокола HTTP (поскольку формат
запроса может меняться от версии к версии) и содержание запроса: информация
клиента (параметры) и, возможно, сопровождающая информация или тело
сообщения. Сервер HTTP отвечает строкой статуса обработки запроса, которая
содержит: версию поддерживаемого протокола, код обработки запроса или код
ошибки и возвращаемую по запросу информацию. Информация тела
сообщений, как клиента, так и сервера должна быть представлена в
MIME-формате.
HTTP-соединение инициируется пользователем и состоит из запроса к ре-
сурсу определенного сервера. В простейшем случае, соединение представляет
собой поток данных между клиентоминициатором соединения и сервером
(рис.2.3).
Рис. 2.3. Простая схема взаимодействия между клиентом и сервером HTTP
В более сложной ситуации, в процессе передачи данных принимают
участие несколько промежуточных объектов (рис. 2.4). Они могут быть трех
видов:
Рroху представляет собой промежуточный агент, который принимает
запрос клиента и, в зависимости от своих настроек, изменяет часть или все
сообщение запроса и передает переформатированный запрос далее по цепочке,
например, другим серверам или запрашиваемому серверу. В момент принятия
запросов Proxy может работать как сервер, а при передаче запросовкак
клиент. Proxy часто используется как ретранслятор протоколов внутренней сети
в Internet и, как правило, представляет собой «главные ворота» выхода
пользователей внутренней сети наружу.
Gateway (шлюз) представляет собой промежуточный сервер. В отличие
от proxy, шлюз принимает запросы клиента, будто он и есть запрашиваемый
сервер и передает их далее. Работа шлюза совершенно прозрачна для клиента.
Шлюз, как правило, используется как ретранслятор запросов или протоколов
внешней сети во внутреннюю, к ресурсам сервера, т. е. это «главные ворота»
входа пользователей внешней сети.
Tunnel (туннель) представляет собой программу-посредник между
двумя соединениями. Туннели используются в тех случаях, когда необходимо
организовать поток данных через какой-либо промежуточный объект
(например, тот же proxy), который не может интерпретировать структуру
потока данных.
ответ
зап
р
ос
клиент
HTTP-сервер