Python http.client CONNECT: HTTP/1.1 начиная с Python 3.12
Проверьте реализацию Python и транспорта, прежде чем применять старые обходные решения HTTP/1.0 CONNECT.
Старое утверждение, что Python всегда отправляет HTTP/1.0 для CONNECT, больше не является безопасным общим правилом. Python 3.12 изменил туннелирование в http.client на HTTP/1.1 и добавил автоматическое создание заголовка Host, если он не задан.
Это изменение относится к документированной реализации стандартной библиотеки. HTTP-библиотека более высокого уровня может переопределять или оборачивать поведение туннеля, поэтому записывайте её версию, а также версию Python.
Если прокси отклоняет туннель, изучите обмен CONNECT, который этот клиент действительно создал. Изменение версии HTTP в запросе к назначению или добавление заголовка Host в запрос к сайту не обязательно меняет предыдущий запрос туннеля.
Точно так же редактирование закрытых полей в старом примере адаптера Requests может привязать приложение к устаревшему внутреннему API. Предпочитайте совместимое и поддерживаемое сочетание клиента и среды выполнения и документированную интеграцию с прокси.
Держите два разговора в отчёте раздельно: HTTP-запрос, использованный для открытия туннеля, а затем протокол, согласованный с назначением внутри него. Они могут использовать разные версии и сбоить на разных этапах.