HTTP и отладка запросов

Парсер HTTP-заголовковкаждая строка на своём месте

Вставьте один блок заголовков и проверьте значения, параметры и повторы. Есть отдельные примеры запроса и ответа.

Парсер HTTP-заголовков

Исходные HTTP-заголовки

Ввод обрабатывается в этом браузере. Инструмент не отправляет запросы и не сохраняет историю.

Результат разбора

Строка запроса или статуса

GET /reports HTTP/1.1

Host

Строка 2
example.com

Accept

Строка 3
application/json, text/html;q=0.8, */*;q=0.1
Параметры поля
  • application/jsonВес (q): 1
  • text/htmlВес (q): 0.8
  • */*Вес (q): 0.1

Accept-Language

Строка 4
en, ja;q=0.8, *;q=0
Параметры поля
  • enВес (q): 1
  • jaВес (q): 0.8
  • *Вес (q): 0

Authorization

Строка 5Скрыто
[REDACTED]

X-Trace

Строка 6Повтор
first

x-trace

Строка 7Повтор
second

Параметры

Скрывает Authorization, Proxy-Authorization, Cookie и Set-Cookie в результатах и экспорте. Исходный ввод остаётся видимым; собственные ключи и секреты в URL не скрываются.

Один текстовый блок, до 128 KiB UTF-8 и 1000 полей. Первая пустая строка завершает заголовки.

Полей: 6 · повторных строк: 2 · замечаний: 0

Парсер HTTP-заголовков помогает подготовить захваченный обмен к разбору ошибки. Повторное поле может указывать на вмешательство прокси. Если при преобразовании оставить лишь последнее значение, эта важная деталь пропадёт из отчёта.

Разбор HTTP-заголовков даёт два представления: последовательность исходных строк и массивы значений по имени. Заголовки запроса и заголовки ответа можно изучать по номерам строк или читать из скрипта, сохраняя все повторные значения.

Зачем нужен Парсер HTTP-заголовков

Повтор не исчезает при преобразовании

Парсер HTTP-заголовков оставляет две строки Set-Cookie отдельными записями, даже если их имена отличаются регистром. Запятая в дате Expires остаётся частью значения. Так можно сравнить вклад промежуточного сервера, не получив вместо него одну неоднозначную строку.

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

Разделители с учётом кавычек

Точка с запятой внутри имени файла не начинает новый параметр. Для Content-Disposition рядом доступны исходное значение и его структура. Accept и Accept-Language показывают элементы и веса без перестановки предпочтений.

Сложное поле разделяется на карточку имени файла и несколько упорядоченных карточек параметров.

Как читать захваченный обмен

01

Выберите направление обмена

Пример запроса содержит Accept, языковые веса и вымышленный токен. Пример ответа показывает расширенное имя файла и два cookie. Перед заменой есть предпросмотр с числом символов; восстановление возвращает не только ввод, но и предыдущий результат.

02

Управляйте обновлением

Автоматический режим ждёт 350 мс после последнего изменения. При его выключении появляется кнопка разбора; также работает Ctrl/Cmd+Enter. Изменение текста или регистра имён блокирует экспорт до успешного пересчёта результата.

03

Проверьте экспортируемые значения

Скрытие включено по умолчанию. После его отключения значения четырёх защищённых полей попадают в оба представления и скачанный JSON. Показ следующих 50 элементов расширяет только предпросмотр; экспорт всегда содержит полный отчёт.

Поля и их внутренние параметры

Последовательность и группы

entries хранит номер исходной строки, оригинальное имя, отображаемое имя и значение. grouped использует первое отображённое написание как ключ и всегда содержит массив. Даже единственное значение не меняет тип, поэтому скрипту не нужно отдельно обрабатывать строки и массивы.

Расширенные имена файлов

Content-Disposition раскрывает тип и все параметры. Корректный filename* предпочтительнее filename. Поддерживается декодирование UTF-8 и ISO-8859-1; дубли параметров и неподдерживаемые кодировки сопровождаются замечаниями, чтобы неоднозначное имя не выглядело достоверным.

Вес без выбора ответа

Диапазоны типов Accept и языков Accept-Language сохраняют порядок и параметры. Отсутствующий q означает 1; q=0 не удаляется. Неверный вес показан как null с замечанием. Сортировка не выполняется, доступные представления сервера не моделируются.

Ошибки с исходной позицией

Отсутствие разделителя, неверное имя, управляющий символ или устаревшая свёрнутая строка останавливают разбор с номером строки и столбца. Проблемы параметров трёх специальных полей дают замечания, сохраняя исходное значение. После ошибки блока частичный результат не предлагается к экспорту.

Границы интерпретации

Один текстовый блок
Первая пустая строка после начальной строки или поля завершает разбор; последующее тело пропускается. Ответы цепочки перенаправлений вставляйте отдельно. Полные команды cURL, префиксы журналов, HAR и двоичные кадры не поддерживаются. Текстовые псевдополя вида :method: GET принимаются.
Отчёт не проверяет протокол
Регистр имён меняет представление, но не подтверждает пригодность текста для отправки. Токены, CORS, CSP и кеширование не проверяются. Обратного преобразования JSON в запросы и загрузки вложений нет. Предложенное имя файла никогда не используется для сохранения отчёта.
Ограничения заданы явно
Полный ввод должен занимать не более 128 KiB UTF-8, а блок содержать не более 1000 полей. Превышение вызывает ошибку вместо усечения. Скрываются только четыре фиксированных имени; собственные ключи и секреты в адресе запроса следует проверить перед передачей отчёта.

Парсер HTTP-заголовков: вопросы

Чем отличаются заголовки запроса и ответа?

Запрос передаёт предпочтения по типам данных, языкам и аутентификации. Ответ описывает возвращённое содержимое, cookie и правила кеширования. Примеры показывают обе стороны обмена; механизм разбора для них общий.

Имеет ли значение регистр имени заголовка?

Для группировки — нет: Content-Type и content-type относятся к одной группе. В каждой записи дополнительно сохраняется исходное написание. Регистр букв внутри значений при смене режима отображения не меняется.

Передаются ли данные на сервер при разборе?

Нет. Здесь нет получения заголовков по адресу или повторной отправки запроса. Сначала скопируйте текст из браузера либо HTTP-клиента, затем вставьте его в поле ввода.

Зачем несколько строк Set-Cookie в одном ответе?

Каждая строка может задавать свой cookie и его атрибуты. Запятая встречается и внутри Expires, поэтому простое объединение строк делает границы неоднозначными. В отчёте все такие значения остаются отдельными.

Нужно ли сохранять порядок заголовков?

Особенно важна последовательность повторных полей с одним именем. entries сохраняет порядок всего блока, а массивы grouped — порядок значений внутри группы. Инструмент не сортирует и не удаляет повторные записи.

Поле разобрано неверно?

Проверьте следующий блок

Парсер HTTP-заголовков поможет проверить один захваченный обмен: изучите замечания к параметрам и сохраните актуальный JSON для дальнейшего поиска ошибки.