Skip to content

Расширенный режим захвата (Advanced mode)

В разделе Options → Network можно выбрать режим захвата сетевого обмена:

РежимВ интерфейсеСуть
Classic mode«классический» снимокТе же ограничения, что у перехвата на странице: видны заголовки и тело в объёме, доступном скрипту страницы (в т.ч. правила CORS для чужого origin). Подробнее см. Работа с запросами.
Advanced modeрасширенный захватРасширение запрашивает доступ к webRequest и дополняет карточку запроса полным набором заголовков запроса и ответа так, как их видит браузер на уровне обмена, а не только «разрешённый странице» список.

Advanced mode (закрепление заголовков, Header links, опции Advanced headers) доступен только в расширении для Chrome / Edge.
В Standalone по-прежнему используется сценарий без расширенного захвата: полный набор заголовков через webRequest, описанный ниже, там недоступен.


Что даёт Advanced mode во вкладке Network

  • Заголовки запроса и ответа в детализации запроса отражают расширенные данные (в том числе служебные и не попавшие в Access-Control-Expose-Headers).
  • Закрепление строк заголовков (pin) — для имени заголовка можно закрепить строку вверху списка отдельно для блока Request и отдельно для Response. Закрепления выполняются из меню строки заголовка (три точки) при активном Advanced mode.
  • Header links — для пары «имя заголовка + Host запроса» задаётся шаблон внешнего URL; плейсхолдер {value} и при необходимости цепочка преобразований (pipeline) определяют, как текст заголовка попадает в ссылку. Подробнее в разделе Header links.

Список Header links, таблица Pinned headers и блок Advanced headers в Options → Network отображаются только при включённом Advanced mode, чтобы не перегружать Classic mode.


Правило задаёт:

  • Header — имя HTTP-заголовка (сопоставление без учёта регистра);
  • Host — хост URL запроса (нормализуется, без схемы и пути, например api.example.com);
  • Link — шаблон URL; подстановка описана в разделе плейсхолдер {value} и pipeline.

Создание и правка правил доступны из меню строки заголовка во вкладке Network (Advanced) и из Options при выбранной группе правил для заголовка.

Плейсхолдер {value} и pipeline

В поле Link можно использовать:

  • {value} — подставить значение заголовка как на карточке запроса (то же, что pipeline без шагов).
  • {value|…}цепочка операций: после {value перечислите шаги через |; они выполняются слева направо, в URL попадает итог. Пример: {value|trim|urlencode}.

Между шагами — символ |. Разбор делит цепочку по | только если следующий фрагмент начинается с известной операции (см. таблицы ниже). Поэтому | внутри регулярного выражения (например, альтернация a|b) обычно допустим, пока после кандидата на разрез не получается «новое имя операции».

Если шаг некорректен (например, ошибка в regex), этот шаг пропускается, значение после него не меняется из-за этого шага.

Операции без аргументов

OpДействие
trimУбрать пробелы в начале и в конце.
lower / upperНижний / верхний регистр.
urlencode / urldecodeКодирование для URL / обратное декодирование (+ как пробел; неверные escape не ломают значение).
base64encode / base64decodeBase64 для UTF-8.
hexencode / hexdecodeШестнадцатеричная строка ↔ UTF-8 (hexdecode игнорирует пробелы).
md5MD5 в hex для UTF-8 (синхронно).
sha1 / sha256SHA-1 / SHA-256 в hex через Web Crypto (crypto.subtle). Нужен контекст с доступным SubtleCrypto (например HTTPS или страницы расширения); иначе на шаге хеша получится пустая строка.

Регулярные выражения и замена

OpСинтаксисЗаметки
regexregex:<pattern>new RegExp(<pattern>) (отдельного поля для флагов нет — при необходимости см. возможности движка в самом шаблоне). Запоминает последнее совпадение для следующего replace. Нет совпадения → значение становится пустой строкой.
replacereplace:<template>После replace: в шаблоне подставляются $1, $2, … из последнего regex. Без совпадения — пусто.
replaceRegexreplaceRegex:<pattern>:<template>Шаблон и паттерн отделяются по последнему : в сегменте; двоеточие внутри паттерна неудобно — лучше связка regex + replace.
matchmatch:<pattern>Если значение подходит под шаблон — оставить; иначе заменить на пустую строку.

Строки и структура

OpСинтаксисЗаметки
replaceTextreplaceText:<from>:<to>По последнему : в аргументах отделяется <to>; слева — <from> (from может содержать :). Замена всех вхождений. Пустой from — шаг пропускается.
substringsubstring:<start> или substring:<start>:<length>Усечение строки: при двух числах длина — число символов от start.
splitsplit:<delimiter>:<index>Индекс — только цифры после последнего :; разделитель — всё до него (может содержать :). Вне диапазона — пусто.

Условия и значения по умолчанию

OpСинтаксисЗаметки
defaultdefault:<fallback>Если после предыдущих шагов значение строго пустая строка — подставить <fallback>. Пробелы «как пусто» — сначала trim.
ifMatchifMatch:<pattern>:<ifTrue>:<ifFalse>Ветка false после последнего :; true — между предпоследним и последним :; pattern — всё до предпоследнего : (двоеточия внутри веток с этим правилом связаны).

Примеры

text
https://trace.example.com/?id={value}
text
https://trace.example.com/?id={value|trim|urlencode}
text
https://trace.example.com/?t={value|regex:^Bearer\s+(.+)$|replace:$1|urlencode}
text
https://trace.example.com/?t={value|default:unknown}

В одном шаблоне можно несколько блоков {value…}; каждый считается от того же значения заголовка.


Краткая памятка

  • Advanced mode расширяет заголовки за счёт webRequest; Standalone этого режима не предоставляет.
  • Classic mode — прежняя модель «видимости» заголовков для страницы.
  • Pin — отдельно для списков Request / Response.
  • Header links: Host + шаблон Link: {value} или цепочка {value|op|…} для подстановки значения заголовка.

Лицензия GPL-3.0.