Как именно работает прокси?

Если я хочу подключиться, скажем, IP 100.100.100.100, порт 80, мой компьютер отправит tcp-пакет с этим адресом в провод.

теперь, если я использую прокси-сервер, скажем, 200.200.200.200 порт 8080 (такой прокси, который вы можете настроить в Internet explorer), как этот процесс изменился?

когда я все еще хочу подключиться к тому же IP, будет IP заголовок будет включать IP назначения или прокси IP или оба?

Я уже погуглил, есть сотни страницы, которые говорят вам, как настроить прокси, но никто не объясняет, как это работает под капотом.

22
задан cody
09.05.2023 12:29 Количество просмотров материала 3280
Распечатать страницу

4 ответа

запрос HTTP отправляется с клиента на порт 8080 прокси-сервера. Затем прокси-сервер отправляет новый HTTP-запрос на конечный сайт. Прокси, в зависимости от конфигурации, часто добавляет заголовок "X-Forwarded-For" в HTTP-запрос. Файлы журнала на целевом веб-узле покажут IP-адрес прокси, но могут или не могут быть настроены для регистрации адреса "X-Forwarded-For".

Это типичная конфигурация, но программное обеспечение прокси позволит вам все виды изготовления на заказ.

EDIT: я должен отметить, что, когда я изначально прочитал Ваш вопрос, у меня появилась идея, что вы спрашиваете о прокси-сервере HTTP, таком как squid или nginx. Существует много различных типов прокси-серверов. В Internet Explorer вы, скорее всего, будете использовать прокси-сервер HTTP, но есть и много других типов.

12
отвечен emgee 2023-05-10 20:17

HTTP-это протокол уровня 7, поэтому не путайте. при использовании HTTP-прокси и вы типа говорите google.com заголовок HTTP все равно же google.com но конечный IP-адрес будет IP-адрес прокси, источник будет IP хостов в нестандартный номер порта 8080.

1
отвечен user205246 2023-05-10 22:34

чтобы использовать HTTP прокси, запрос отправляется от клиента на IP-адрес прокси-сервера, а не на конечный сервер. прокси должен прочитать HTTP заголовок извлечь запрос-URI. URI запроса включает имя или IP-адрес целевого сервера, и прокси-сервер использует эту информацию для пересылки запроса.

спецификация HTTP в строке запроса, чтобы исключить имя сервера и порт при прокси-сервер не используется (так как они не нужны, если запрос был отправлен непосредственно на этот сервер). Но, согласно спецификации...

форма absoluteURI требуется при запросе прокси-сервера.

поэтому, если прокси не используется, строка запроса может выглядеть так:

GET /robots.txt HTTP/1.1

но чтобы использовать прокси-сервер, строка должна содержать имя сервера (и порт, если не 80):

GET http://httpbin.org:80/robots.txt HTTP/1.1

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

0
отвечен nobar 2023-05-11 00:51

нет такого понятия, как "tcp-пакет". TCP работает с потоками данных. Существуют IP-пакеты.

вы, кажется, не хватает некоторых базовых знаний о сети, я предлагаю вам получить хорошую книгу о TCP / IP. Всеобщим фаворитом кажется "TCP / IP illustrated" У. Ричарда Стивенса.

вернемся к вашему вопросу.

прокси-это посредник:

[вы] - [прокси]- [сервер, который вы хотите подключить]

теперь есть два разных связи:

[вы] - (подключение к прокси-сервер) - [Прокси] - (прокси-сервера соединение с сервером) - [сервер вы хотите подключиться]

когда вы думаете, что вы подключаетесь к серверу через прокси-сервер, вы на самом деле подключаетесь к прокси-серверу и говорите ему, что хотите достичь определенного сервера. Затем прокси открывает второе соединение от себя к этому серверу и действует как посредник, передавая данные в обоих направлениях.

-7
отвечен vtest 2023-05-11 03:08

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх