Короткие ответы
Как выглядит URL прокси с авторизацией?
Распространённая форма — scheme://username:password@host:port. Клиент должен поддерживать указанный протокол и способ авторизации. Схема относится к шлюзу, а имя и пароль внутри URL требуют кодирования компонентов.
Нужно кодировать всю строку?
Нет. Сохраните структурные разделители и хост. Кодируйте исходное имя и пароль отдельно, затем собирайте URL. Кодирование готовой строки изменит разделители, необходимые парсеру.
В поле Password нужно писать проценты?
Для отдельного поля берите исходный пароль, если документация клиента не требует иного. Последовательность процентов может быть частью самого секрета. Не декодируйте её автоматически и не принимайте готовый URL за исходные поля.
Для HTTPS-сайта нужен https:// в URL прокси?
Не обязательно. HTTP-шлюз может передать HTTPS через CONNECT. https:// для самого прокси означает TLS до шлюза и требует поддержки обеих сторон; это не следствие схемы сайта.
Назовите роль каждого исходного поля
В Connection builder · English копируйте согласованный набор: протокол, хост, его порт, полное имя и пароль. В имени находятся параметры пула, страны и сессии. У арендованного устройства свой набор подключения. Смешивание полей разных продуктов не исправляется URL-кодированием.
Полный URL с реальным паролем является секретом. Не публикуйте его в исходниках, скриншотах, журналах или параметрах аналитики.
http://ENCODED_USER:ENCODED_PASSWORD@gw.portproof.org:7000| Часть | Что означает | Проверьте |
|---|---|---|
| Схема | Соединение до шлюза | Поддержку протокола клиентом |
| Имя и пароль | Авторизацию шлюза | Полные исходные значения |
| Хост | DNS-имя или адрес шлюза | Не URL кабинета и не сайт назначения |
| Порт | Слушатель выбранного протокола | Не порт другого типа соединения |
Форма host:port:user:pass — формат импорта отдельной программы, а не универсальный URL. Слепое разделение по каждому двоеточию неоднозначно при двоеточии в пароле. IPv6 также содержит двоеточия и требует квадратных скобок в позиции хоста. Сначала изучите документированный формат экспорта.
Не смешивайте два участка соединения
Для показанного HTTP-прокси используйте http://gw.portproof.org:7000. Адрес HTTPS-назначения остаётся отдельным параметром. CONNECT не отменяет проверку сертификата назначения и не шифрует первоначальную HTTP-авторизацию шлюза.
У SOCKS5 есть собственные требования к авторизации и разрешению имён; клиент должен их поддерживать. Справка curl описывает схемы и обработку авторизации. Одновременная смена схемы и порта — смена протокола, а не исправление кодировки.
Кодируйте исходные компоненты один раз
Символы @, / и # имеют структурный смысл в URL. urllib.parse.quote с safe="" кодирует компонент, включая косую черту. quote_plus предназначен для иной обработки пробелов в форме запроса; это не операция примера.
Пример проверяет разбор и обратное получение исходных строк. Двоеточие в учебном имени не утверждает поддержку такого имени протоколом Basic или шлюзом.
from urllib.parse import quote, unquote, urlsplit
raw_user = "user:name"
raw_password = "p@ss/#:%40 +"
host = "gw.portproof.org"
port = 7000
proxy_url = (
f"http://{quote(raw_user, safe='')}:"
f"{quote(raw_password, safe='')}@{host}:{port}"
)
parts = urlsplit(proxy_url)
assert unquote(parts.username) == raw_user
assert unquote(parts.password) == raw_password
assert parts.hostname == host
assert parts.port == port
# Pass proxy_url privately to a client that accepts this format.
# Do not print a URL assembled from real credentials.
Наличие % в исходном пароле не доказывает, что он уже закодирован. Если исходная последовательность буквально %40, кодируйте исходный процент для помещения в URL; не заменяйте секрет знаком @. Храните оригинал отдельно от производной сериализации и не выполняйте декодирование наугад.
Для отдельных полей сохраняйте исходные строки
Некоторые клиенты принимают сервер и авторизацию раздельно. В поддерживаемой конфигурации Playwright сервер не содержит логин, а username и password получают исходные значения. Не отправляйте туда автоматически те же процентные последовательности, которые построены для URL.
Это конфигурационный фрагмент из английского руководства. Он не открывает браузер и не проверяет соединение; доступность переменных и поддержку протокола нужно проверить в своём процессе.
// Configuration fragment; credentials are original values from your environment.
const proxy = {
server: "http://gw.portproof.org:7000",
username: process.env.PROXY_USER,
password: process.env.PROXY_PASS,
};
Согласуйте имя переменной с кодом клиента: PROXY_PASS и PROXY_PASSWORD — разные названия. Секреты должны поступать через принятый в проекте механизм. JavaScript в клиентской сборке не должен раскрывать пароль шлюза посетителям сайта.
Исправляйте формат отдельно от отказов
- Проверьте схему, хост и числовой порт без реального секрета в публичной диагностике.
- Сверьте способ ввода: полный URL, отдельные поля или собственный импорт клиента.
- Соберите строку из исходных значений, не из уже сериализованного URL.
- Выполните одну ограниченную разрешённую проверку с сохранённой проверкой TLS.
- Различайте ошибку парсера, соединения,407, CONNECT и ответ назначения до повторов.
Проверка curl даёт исходную диагностику. Если она работает, а приложение нет, сравните его собственные настройки. Правильный URL не обещает принятия номера, содержимого сайта, страны или постоянного IP.
Редакция от 2 ноября 2026 года: кодовые тела совпадают с английским владельцем, а синтетическая сериализация проверяется без сети. Покупка трафика и кабинет доступны на английском; текущие условия не выводятся из формата строки.
Допустимое использование
Выполняйте только разрешённые действия в пределах правил назначения. Сохраняйте учётные данные и личное содержимое в тайне; соблюдайте политику допустимого использования · English.