Копирование запроса как cURL, HAR
↑ 1.7 Инструменты исследования: DevTools, логи, трассировки · ← Предыдущая · → Следующая
Зачем это аналитику и PM
Скрин списка запросов нельзя повторить. Команда cURL повторяет один вызов, файл HAR отдаёт разработчику пачку вызовов. В обоих легко уезжает допуск, поэтому их чистят до отправки.
План темы
- Copy as cURL
- импорт в Postman
- HAR для разработчиков
- что в нём скрыто (токены)
Объяснение
cURL — одна команда: метод, адрес, заголовки и тело. Браузер умеет собрать её из выбранной строки. Пункт меню в разных браузерах подписан по-разному. Часто встречается Copy as cURL. Точную подпись сверьте на экране, в плане темы оставлено это привычное имя.
HAR — JSON-журнал нескольких запросов страницы. Его отдают, когда важен порядок: что ушло до сохранения и что вернулось после. Команда экспорта тоже называется по-разному. Ищите сохранение списка как HAR и проверьте, попали ли в файл тела ответов.
Как чек и смена. cURL — один чек. HAR — лента за визит. Оба могут содержать номер карты, здесь это cookie и заголовок допуска.
Куда девать строку
Команду импортируют в Postman или вставляют в задачу. Импорт раскладывает метод и адрес по полям. Название команды импорта сверьте с клиентом. Перед этим удалите заголовки допуска и cookie. Учебный адрес лучше боевого: команда из браузера бьёт туда, куда ходила страница.
В HAR смотрят метод, адрес, код и факт тела. Полный экспорт браузера толстый. Ниже сокращённый JSON той же формы, не файл из DevTools: нет страниц, таймингов и cookie.
Примеры
Команда без секрета. Её можно разобрать глазами, на боевой стенд она не ведёт.
curl -sS "https://jsonplaceholder.typicode.com/todos/1" \
-H "Accept: application/json"Сокращённый HAR. Это учебный каркас, не полный журнал версии 1.2.
{
"log": {
"version": "1.2",
"creator": {"name": "example", "version": "0"},
"entries": [
{
"request": {
"method": "GET",
"url": "https://jsonplaceholder.typicode.com/todos/1",
"headers": [{"name": "Accept", "value": "application/json"}]
},
"response": {
"status": 200,
"statusText": "OK",
"content": {"mimeType": "application/json", "text": "{\"id\":1}"}
}
}
]
}
}Нюансы и подводные камни
- В команде из браузера почти всегда есть cookie сессии. В общий чат так не отправляют.
- Заголовок допуска прячется и в HAR, и в теле ответа. Поиск по файлу на слово authorization и на слово cookie обязателен.
- Повтор команды создаёт настоящий эффект, если метод не чтение. Сначала подставьте учебный хост.
- cURL одной строки не показывает соседние запросы. Для порядка нужен HAR или несколько команд.
- Импорт может склеить лишние заголовки браузера. Лишние служебные строки не являются контрактом.
Практика
Скопируйте один учебный или свой тестовый запрос как команду. Удалите строки допуска и cookie. Рядом представьте, что в задаче нужен ещё и порядок из трёх вызовов.
Ожидаемый результат: в команде остались метод, адрес и безопасные заголовки. Для пачки назван HAR, а не серия скринов. В тексте нет живого секрета.
Вопросы с ответами
cURL или HAR?
Один спорный вызов — команда. Пачка и порядок — HAR. Оба чистят от допуска до передачи.
Почему после импорта запрос другой?
Браузер добавил свои заголовки, а импорт перенёс их все. Контракт — метод, путь, нужные заголовки и тело. Остальное можно снять.
Можно ли приложить HAR как есть?
Нет, пока не открыли файл и не убрали секреты и лишние тела. Сократите до вызовов, о которых спор.
Команда из задачи не обязана совпасть с кнопкой?
Обязана по методу, пути и телу. Хост может стать учебным. Допуск подставляют на стенде, не из примера.