Как посмотреть содержимое запроса и проверить, уходит ли он вообще?
Что проверяют
Умеете ли вы локализовать баг между фронтом и бэкендом: запрос не ушёл, ушёл с неверными данными или ушёл правильно, а сервер ответил не то. Следом обычно спрашивают, как сделать то же самое для мобильного приложения, где DevTools нет.
Как отвечать
Начните с браузера, это самый быстрый путь:
- вкладка Network в DevTools: фильтр Fetch/XHR и галочка Preserve log, чтобы запросы не пропадали при переходе между страницами. Во вкладках запроса видны Headers (метод, URL, статус, заголовки), Payload (тело и query-параметры), Response и Timing;
- Copy as cURL: копирует запрос ровно в том виде, в каком его отправил браузер. Удобно приложить к баг-репорту или повторить из терминала;
- HAR-файл: экспорт всей сессии, если разработчику нужно воспроизвести сценарий целиком.
Для мобильных и десктопных приложений нужен прокси-сниффер: Charles, Fiddler, Proxyman или mitmproxy. Устройство направляют на прокси и ставят его сертификат, после чего виден и HTTPS. На Android начиная с версии 7 пользовательским сертификатам по умолчанию не доверяют, поэтому в тестовую сборку добавляют network_security_config. Если включён certificate pinning, трафик не расшифруется без отдельной сборки.
Если запроса в списке нет вовсе, причин немного: JS-ошибка до отправки (смотрите Console), ответ отдан из кэша или service worker, запрос отменён (статус (canceled)) или заблокирован расширением. Отдельно проверьте CORS: браузер мог отправить preflight OPTIONS и не пустить основной запрос.
Последний уровень: логи сервера. Найдите запрос по времени или request ID в Kibana или Loki и убедитесь, что он дошёл.
Где спотыкаются
Отвечают «открою Postman». Postman отправляет свой запрос, а не показывает, что отправило приложение. Это инструмент для проверки API, а не для перехвата.
Считают статус 200 доказательством правильного запроса. Сервер мог принять пустое поле или неверный тип и молча его проигнорировать, поэтому смотреть нужно тело и параметры.
Не могут объяснить, почему в сниффере не видно HTTPS: забыли установить сертификат прокси и включить к нему доверие на устройстве.