Допустим, клиент C хочет отправить HTTP-запрос на сервер S, но через прокси-сервер P.

Насколько я понимаю, это делается только с помощью двух следующих модификаций простого HTTP-запроса:

  1. Клиент отправляет обычное HTTP-сообщение, просто с полным URL-адресом (в первой строке HTTP-сообщения), а не относительным, и добавляет заголовки для прокси-сервера, если это необходимо. Прокси обрабатывает и удаляет прокси-специфичные заголовки. Это операция прикладного уровня.

  2. Это сообщение отправляется на адрес TCP/IP прокси, а не на адрес сервера. Прокси-сервер выполняет запрос к TCP/IP-адресу сервера (который находится в первой строке HTTP-сообщения). Это операция уровней TCP/IP.

Поэтому я бы сказал, что проксирование выполняется на уровнях IP, TCP и приложений.

Это правильно?

0