Перейти к содержимому
Форматы

URL прокси и percent-encoding: как не сломать специальные символы

Полный URL прокси удобен для импорта, но его части имеют строгие границы. Двоеточие, знак @, квадратные скобки и знак процента могут быть разделителями либо данными. Если склеить поля без кодирования, программа разберёт строку иначе, чем ожидал пользователь.

2 мин чтенияПроверено и обновлено: 6 августа 2026 г.

Главное за минуту

  • Схема определяет протокол общения с прокси.
  • Authority может включать userinfo, host и port.
  • Зарезервированные символы в данных требуют percent-encoding.
  • Один и тот же фрагмент нельзя кодировать или декодировать дважды.

Компоненты URI

URI начинается со схемы, после которой authority обычно содержит адрес и порт. Userinfo, если клиент его допускает, располагается перед @. Парсер сначала разделяет компоненты, и только затем безопасно декодирует данные внутри них.

Reserved и unreserved символы

Буквы, цифры и небольшой набор незарезервированных символов можно передавать напрямую. Разделители вроде @, двоеточия и процента имеют специальный смысл. Когда они являются частью логина или пароля, модуль экспорта преобразует соответствующие байты в percent-encoded форму.

Ошибка двойного кодирования

После кодирования знак процента уже участвует в последовательности. Повторная обработка превращает его в %25 и меняет исходное значение. Система должна хранить реквизит в исходном виде, а кодированную строку создавать только на границе экспорта.

Совместимость клиентов

Chromium и cURL принимают адрес прокси в определённых URI-формах, но поддержка встроенных реквизитов различается. Chrome понимает схему, адрес и порт, однако игнорирует логин и пароль, встроенные в ручную настройку прокси. Поэтому показывайте пример для выбранной программы и предлагайте вариант без userinfo, когда реквизиты вводятся отдельно.

Практический чек-лист

  1. 1Указать явную схему http или socks5.
  2. 2Кодировать только данные внутри компонента.
  3. 3Не применять percent-encoding дважды.
  4. 4Проверить IPv6-скобки и порт.
  5. 5Сверить формат с документацией программы.

Источники и документы

Материал подготовлен по первичным, официальным и техническим источникам. Формулировки статьи являются самостоятельным изложением.

  1. 1.RFC Editor / IETF: Uniform Resource Identifier: Generic Syntax
  2. 2.curl project: curl URL syntax
  3. 3.Chromium Project: Proxy support in Chrome

Продолжить чтение

Материалы по близкой теме

Протоколы

HTTP-прокси: что происходит с обычным веб-запросом

Читать

HTTP и TLS

HTTPS через HTTP-прокси: как работает туннель CONNECT

Читать

Протоколы

SOCKS5 простыми словами: согласование, адрес и соединение

Читать