3

Когда прокси получает соединение, как прокси узнает, куда направить запрос?
Например, в Java мы можем установить системное свойство для прокси.
Таким образом, мы устанавливаем IP -адрес прокси-сервера, и запрос отправляется на прокси-сервер, но как прокси-сервер узнает, куда направить фактический запрос?

1 ответ1

6

Существует несколько типов прокси-серверов, и каждый использует свой подход для передачи прокси-серверу того, что он хочет сделать.

Прокси-серверы HTTP понимают только HTTP и не пытаются прокси-пакеты, но вместо этого HTTP-команды, такие как connect, get, post и т.д., Создают совершенно новый пакет, адресованный на нижних уровнях от себя до конечного сервера. Когда клиент инициирует соединение, первый пакет потока http содержит глагол CONNECT. прокси получает его, при необходимости выполняет поиск в DNS и создает пакет для отправки на удаленный сервер, используя команды http и поток данных из пакетов, которые он получает от клиента.

Прокси-серверы SOCKS выполняют туннелирование над уровнем сеанса, поэтому клиент настраивает заголовок уровня 5, который сообщает прокси-серверу, где вы хотите подключиться, передает информацию о протоколе и передает любую аутентификацию, которую требует прокси-сервер. Клиент помещает дейтаграммы уровня 6/7 в область данных сегмента уровня 5 и отправляет их прокси-серверу. прокси получает его, создает новый пакет (без заголовка SOCKS), адресованный удаленному серверу, помещает блоки данных уровня 6/7 из клиентского пакета в новый пакет и отправляет его на сервер назначения. Прокси-серверы SOCKS не работают для всех протоколов верхнего уровня, но они проксируют большинство протоколов нижнего уровня, включая tcp и udp.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .