Протоколы и аутентификация · глоссарий

HTTP CONNECT

HTTP CONNECT — это метод запроса, с помощью которого клиент просит HTTP-прокси открыть TCP-туннель к заданному хосту и порту, обычно 443. Получив от прокси ответ 200, клиент связывается с целевым сервером через этот туннель и устанавливает с ним сквозное TLS-соединение. Поэтому прокси видит только имя целевого сервера и зашифрованные данные. Именно так через HTTP-прокси передаются все HTTPS-запросы.

Время чтения: 1 минута Другие названия: CONNECT-туннель, HTTPS-туннелирование Обновлено:

Порядок обмена#

От клиента к прокси, затем через туннель
CONNECT example.com:443 HTTP/1.1
Host: example.com:443
Proxy-Authorization: Basic dXNlcjpwYXNz

HTTP/1.1 200 Connection established

<далее следует TLS ClientHello для example.com>

Практические следствия#

  • Клиент получает сертификат самого целевого сервера: прокси ничего не подписывает заново. Предупреждение о сертификате при работе через прокси означает перехват соединения, а не штатное поведение.
  • Параметры таргетинга нужно передавать в учётных данных прокси, поскольку содержимое зашифрованного запроса ему недоступно.
  • Ошибки до открытия туннеля (407, 400, 502) возвращает прокси, а ошибки после его открытия — целевой сервер.

CONNECT к другим портам#

CONNECT позволяет создать туннель к любому TCP-порту, поэтому через HTTP-прокси можно передавать не только HTTPS. Для защиты от злоупотреблений провайдеры часто блокируют отдельные направления; типичный пример — почтовый порт 25.

Как это работает в HodlProxy#

Шлюзы HodlProxy принимают CONNECT на порту 9000, а выделенные адреса — на порту 8000. Подключаться можно к любому TCP-порту, кроме 25; содержимое туннеля передаётся без изменений, и TLS-соединение на прокси не завершается.

Начните, когда будете готовы

Проверьте на реальном запросе.

Создайте аккаунт, пополните баланс на $20 и отправьте запрос из краткого руководства к своему целевому ресурсу. Срок действия оплаченного трафика не ограничен.