Методы: CONNECT
Метод запроса CONNECT
Baseline Широко доступно
Эта функция хорошо зарекомендовала себя и работает на множестве устройств и в разных версиях браузеров. Она доступна во всех браузерах с июля 2015 года.
Метод HTTP CONNECT запрашивает, чтобы прокси-сервер установил HTTP-туннель до целевого сервера и, если это удалось, без изменений пересылал данные в обоих направлениях до закрытия туннеля.
Целевой ресурс запроса для этого метода уникален: он состоит только из имени хоста и номера порта назначения туннеля, разделённых двоеточием (подробности см. в разделе Синтаксис). Любой код успешного ответа 2XX означает, что прокси-сервер переключится в «режим туннеля», а любые данные в теле успешного ответа поступают от сервера, указанного в целевом ресурсе запроса.
Если веб-сайт находится за прокси-сервером, а сетевые правила требуют, чтобы весь внешний трафик проходил через прокси-сервер, метод CONNECT позволяет установить соединение TLS (HTTPS) с этим веб-сайтом:
- Клиент просит прокси-сервер туннелировать соединение TCP до нужного адресата.
- Прокси-сервер устанавливает защищённое соединение с сервером от имени клиента.
- После установления соединения прокси-сервер продолжает передавать поток TCP от клиента и к нему.
Помимо обеспечения безопасного доступа к веб-сайтам за прокси-серверами, HTTP-туннель позволяет передавать по протоколу HTTP(S) трафик, который иначе был бы ограничен (например, SSH или FTP).
CONNECT — это метод с переходом от узла к узлу: прокси-серверы будут пересылать запрос CONNECT, только если перед исходным сервером находится ещё один входящий прокси-сервер, поскольку большинство исходных серверов не реализуют CONNECT.
Предупреждение: Если вы используете прокси-сервер с поддержкой CONNECT, ограничьте его использование набором известных портов или настраиваемым списком безопасных целевых ресурсов запросов. Создание туннеля к произвольным серверам сопряжено со значительными рисками, особенно если назначением является известный или зарезервированный порт TCP, не предназначенный для веб-трафика. Например, прокси-сервер с недостаточно строгими настройками могут использовать для пересылки такого трафика, как SMTP, чтобы рассылать спам.
| Запрос содержит тело | Нет |
|---|---|
| Успешный ответ содержит тело | Нет |
| Безопасный | Нет |
| Идемпотентный | Нет |
| Кэшируемый | Нет |
| Разрешён в HTML-формах | Нет |
Синтаксис
CONNECT <host>:<port> HTTP/1.1
<host>-
Имя хоста, которым может быть зарегистрированное доменное имя (например,
example.com) или IP-адрес (IPv4, IPv6). <port>-
Номер порта в десятичной системе счисления (например,
80,443 must). Порт по умолчанию не задан, поэтому клиент должен указать его.
Примеры
>Авторизация на прокси-сервере
Запрос к прокси-серверам, которым для создания туннеля требуется авторизация, выглядит следующим образом. Подробнее см. в описании заголовка Proxy-Authorization.
CONNECT server.example.com:80 HTTP/1.1 Host: server.example.com:80 Proxy-Authorization: basic aGVsbG86d29ybGQ=
Спецификации
| Спецификация |
|---|
| Семантика HTTP> # CONNECT> |
Совместимость с браузерами
| Компьютеры | Мобильные устройства | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome для Android | Firefox для Android | Opera для Android | Safari для iOS | Samsung Internet | Android WebView | WebView для iOS | |
CONNECT |
1 | 12 | 1 | 15 | 1 | 18 | 4 | 14 | 1 | 1.0 | 4.4 | 1 |
См. также
- Методы HTTP-запросов
- Коды состояния HTTP-ответов
- Заголовки HTTP
- Прокси-сервер — статья в глоссарии
-
Заголовок
Proxy-Authorization - Как использовать SSH через HTTP-прокси — dimoulis.net (2023)
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Methods/CONNECT