Где найти заголовки ответа CONNECT прокси
Посмотрите на обмен CONNECT, когда диагностическое поле, специфичное для прокси, отсутствует в объекте ответа назначения.
Диагностическое поле в ответе CONNECT прокси относится к другому ответу, нежели более поздний ответ сайта. Объект ответа назначения высокого уровня может показывать только последний.
| Интерфейс транспорта | Где появляются метаданные CONNECT |
|---|---|
| Стандартный API HTTP-соединения Python, 3.12+ | get_proxy_response_headers() возвращает заголовки ответа CONNECT, или None когда CONNECT не отправлялся. |
| Сбор заголовков в libcurl | Заголовки CONNECT могут быть включены. CURLOPT_SUPPRESS_CONNECT_HEADERS управляет их доставкой через соответствующие пути вывода заголовков. |
Для обработчика cURL в Guzzle, перехватывайте каждый блок ответа с помощью on_headers вместо того чтобы смотреть только на возвращённый ответ. Используйте поддерживаемый интерфейс клиента, который действительно выполняет запрос. Библиотека, построенная поверх Python, не обязательно раскрывает метод соединения в своём ответе, и отдельный экземпляр соединения не может выявить этот обмен. Подавление заголовков CONNECT в libcurl может упростить парсер, но скрывает доказательство, нужное диагностике.
Если поле по-прежнему отсутствует, проверьте документированные условия продукта, метода и результата у оператора. Запрос, переданный открытым текстом, и непрозрачный туннель HTTPS могут раскрывать метаданные по-разному; поле поставщика не является обязательной частью каждого ответа.
Сохраняйте определение поля вместе с его значением. Возвращённый IP может описывать слушателя, локальную привязку, выбранный выход или назначение. Одна лишь его форма не определяет источник, обращённый к сайту.