Qt HttpProxy и HttpCachingProxy: возможности CONNECT
Отличайте HttpProxy в Qt с поддержкой CONNECT от типа HttpCachingProxy только для запросов.
Qt различает HTTP-прокси, способный туннелировать, и свой тип HTTP-прокси только для кэширования. Оба имени содержат HTTP, но их возможности подключения различаются.
| Тип Qt | Роль подключения |
|---|---|
| HttpProxy | Поддержка HTTP CONNECT для исходящих TCP-соединений |
| HttpCachingProxy | Обычные HTTP-запросы в совместимом клиенте на основе запросов |
| Socks5Proxy | Согласование SOCKS5 с его документированными транспортными возможностями |
QNetworkAccessManager, выполняющий обычный HTTP-запрос, может использовать тип, ориентированный на запросы. QTcpSocket, которому нужен байтовый туннель, требует прокси с TunnelingCapability. Qt особо предупреждает против установки прокси по умолчанию для приложения без этой возможности, когда его должны использовать обычные TCP-сокеты.
Выберите тип протокола до назначения конечной точки. Для разрешённого публичного HTTP-запроса без аутентификации прокси список HTTP-прокси предлагает адреса; тип Qt всё равно должен обеспечивать возможность, необходимую этому запросу. Если передать HttpCachingProxy порт, используемый службой CONNECT, недостающая возможность у этого выбора Qt не появится.
Метка «только кэш» также не обещает, что каждый ответ будет сохранён или повторно использован удалённым сервером. Она описывает поддерживаемый клиентским интерфейсом стиль использования прокси, тогда как политика HTTP-ответов по-прежнему управляет повторным использованием кэша.