HTTP-запрос: завершить соединение с прокси - PullRequest
0 голосов
/ 03 мая 2019

В настоящее время я подключен к локальному прокси-серверу 127.0.0.1:5034, используя сокет, и через него я отправляю запрос на подключение к другому внешнему прокси-серверу, используя:

CONNECT 192.168.1.2:5043 HTTP/1.1
Host:192.168.1.2

После этого я получаю следующеесообщение:

HTTP/1.1 200 OK

Но проблема заключается в том, что после этого, когда я пытаюсь завершить соединение с удаленным прокси-сервером следующим образом:

Connection: close

похоже, что даже локальный прокси 127.0.0.1:5034 закрывается и вызывает ошибку сокета, я искал некоторое время, чтобы найти способ завершить только запрос на подключение, но не могу его найти.

Есть ли способ закрыть соединение простодля удаленного прокси и поддерживать соединение локального прокси?

1 Ответ

2 голосов
/ 05 мая 2019

Нет, это невозможно.Конструктивно CONNECT преобразует соединение HTTP / 1.1 в туннель, а запросы внутри этого туннеля непрозрачны до 127.0.0.1:5034: он просто пересылает байты вперед и назад, пока туннель не будет закрыт. RFC 7231 § 4.3.6 говорит (выделено):

Туннель закрывается, когда посредник туннеля обнаруживает, что какая-либо из сторон закрыла свое соединение: посредник ДОЛЖЕН попытаться отправитьвсе оставшиеся данные, поступившие с закрытой стороны на другую сторону, , закрывают оба соединения , а затем отбрасывают оставшиеся данные, оставленные недоставленными.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...