# HTTP, HTTPS и SOCKS5: как именно шлюз работает с каждым протоколом.

Стандартные протоколы без специального клиента. На этой странице точно описано поведение системы для тех, кому важно знать, что происходит на сетевом уровне.


## Краткая памятка

| Назначение | URL прокси в клиенте | Порт |
| --- | --- | --- |
| URL с `http://` и `https://` | http://USER:PASS@res.hodlproxy.com:9000 | 9000 |
| Любой протокол поверх TCP, имя хоста разрешается на выходном узле | socks5h://USER:PASS@res.hodlproxy.com:9001 | 9001 |
| То же самое, но имя хоста разрешается вашим устройством | socks5://USER:PASS@res.hodlproxy.com:9001 | 9001 |
| Выделенный адрес, HTTP(S) | http://USER:PASS@203.0.113.42:8000 | 8000 |
| Выделенный адрес, SOCKS5 | socks5h://USER:PASS@203.0.113.42:8001 | 8001 |


## HTTP

При обращении к обычному адресу `http://` ваш клиент отправляет на порт 9000 запрос с абсолютным URI и заголовком `Proxy-Authorization`. Шлюз удаляет этот заголовок, передаёт запрос через выходной узел и потоком возвращает ответ. Поддерживается HTTP/1.1 с keep-alive; сохраняемое соединение остаётся на том же выходном узле (см. раздел [«Ротация»](https://hodlproxy.com/ru/docs/username-parameters#rotation-and-sessions)).


## HTTPS

При обращении к адресу `https://` клиент отправляет `CONNECT host:443`, а шлюз открывает прозрачный туннель от выходного узла. TLS-рукопожатие происходит через этот туннель между вашим клиентом и целевым сервером: шлюз ничего не расшифровывает, не анализирует и не подписывает заново, а проверяемый вами сертификат принадлежит самому целевому серверу. HTTP/2 и согласованные внутри туннеля резервные варианты HTTP/3 поверх TCP работают так же, как при прямом подключении.


## SOCKS5

- RFC 1928 с аутентификацией по имени пользователя и паролю (RFC 1929) либо без аутентификации при подключении с адреса из белого списка.
- `CONNECT` к любому TCP-порту, кроме 25. Команды `BIND` и `UDP ASSOCIATE` не поддерживаются: UDP и входящие соединения недоступны.
- Передавайте имя хоста (тип адреса 0x03), чтобы его разрешал выходной узел: именно это означает `socks5h://` в curl, Python и Node. Если клиент разрешает имя локально и передаёт IP, запрос также сработает, но DNS-запрос будет выполнен на вашей стороне.
- Используйте SOCKS5 для протоколов поверх TCP, отличных от HTTP, и для клиентов, поддерживающих только SOCKS; для веб-трафика HTTP-порт равнозначен.


## Заголовки

Шлюз удаляет `Proxy-Authorization` и `Proxy-Connection` и ничего не добавляет: ни `Via`, ни `X-Forwarded-For`, ни `X-Real-IP`. Целевой сервер получает ваш запрос в том виде, в котором его отправил бы выходной узел, — в этом и состоит назначение сети. Самостоятельно настройте `User-Agent`, `Accept-Language` и остальные заголовки в соответствии со страной выходного узла.


## Не поддерживается

- UDP в любом виде (при настроенном прокси QUIC во всех браузерах переключается на TCP).
- Целевые адреса IPv6: выходные узлы используют IPv4.
- TLS-соединение с самим портом прокси (`https://` в качестве схемы **прокси**). Соединение до шлюза не шифруется; см. раздел [«Точки подключения»](https://hodlproxy.com/ru/docs/endpoints#https-targets).
- FTP, SMTP на порту 25 и протоколы, требующие от прокси обратного подключения к вам.


Источник: https://hodlproxy.com/ru/docs/protocols
