с фев
Держу пакет, где один адрес отдаётся по двум портам: 8080 под схему http и 1080 под сокетную. Полгода лил всё через первую, привык. И вот задача, где она встала намертво: почтовый клиент, порт 587, посредник по схеме http такой разговор просто не понимает.
Полез разбираться и понял, что путал два уровня. Схема http это посредник, который читает сам запрос: видит строку запроса целиком, дописывает свои заголовки, для шифрованного трафика поднимает туннель командой CONNECT и дальше гонит байты вслепую. Сокетная схема про протокол поверх не знает ничего: короткое рукопожатие, команда с адресом и портом, дальше просто труба.
Вопрос к тем, кто щупал руками: осталась ли задача, где схема http выигрывает? У меня набралась одна, переменные окружения её понимают везде.
curl -sv -x http://login:pass@10.0.0.5:8080 https://example.org/ -o /dev/null
curl -sv -x socks5h://login:pass@10.0.0.5:1080 https://example.org/ -o /dev/null