Одним из важнейших навыков для разработчика и системного администратора является отладка приложения, API или сервисов, и знание правильных инструментов спасает жизнь.
Что такое отладка?
Отладка – это процесс, и он включает в себя множество тактик.
Это систематический поиск и устранение проблем и ошибок в программе.
Кроме того, отладка устраняет все проблемы, которые могут помешать корректной работе программного обеспечения или, в данном случае, веб-приложения.
Процесс отладки вашего API или веб-приложения в первую очередь включает в себя попытку воспроизвести проблему.
Следовательно, возникает необходимость отправить API-запрос.
Вот здесь-то и возникает проблема.
Большинство браузеров не позволят вам изменить заголовок origin и даже ограничения на размер URL.
Другими словами, чтобы воспроизвести проблему, вам может понадобиться выполнить некоторые манипуляции с HTTP.
👵 Лучшие HTTP-клиенты командной строки для Linux
А для этого потребуются мощные инструменты отладки.
Интересно знать, что некоторые HTTP-клиенты, то есть веб-браузеры, имеют встроенные инструменты веб-разработчика.
Эти инструменты можно использовать для отладки API.
Что такое HTTP-клиент?
Предположим, вы думаете о создании системы, использующей протокол HTTP для распределенной коммуникации или HTTP-aware, например, веб-приложения.
Тогда вы, возможно, захотите взглянуть на компонент HTTP-клиента.
HTTP, или HyperText Transfer Protocol, – это причина, по которой вы можете общаться или передавать данные в Интернете, каждый раз, когда вы вводите URL.
Это прикладной протокол, который делает возможным просмотр Интернета.
Итак, HTTP-клиент – это система, которая отправляет запросы на сервер в текстовом формате HTTP и, в свою очередь, получает ответ от того же сервера.
Очень важно знать разницу между HTTP-клиентом и HTTP-сервером.
Различия между HTTP-клиентом и сервером
В то время как HTTP-клиентом часто являются веб-браузеры или утилиты, HTTP-серверы выступают в качестве прокси-серверов для серверов приложений.
Проще говоря, ваши смартфоны, телевизоры, PlayStation, да вообще любое устройство, которое может подключаться к Интернету, скорее всего, использует HTTP-клиент.
Аналогично, HTTP-сервер – это сетевой компьютер, к которому подключается HTTP-клиент.
Их отношения больше похожи на разговор.
⚓ cURL – Как отобразить заголовки запроса и заголовки ответа
HTTP-клиент посылает запрос, а HTTP-сервер отвечает.
Примеры HTTP-запросов
Запросы | Результаты |
GET | Запрашивает весь ресурс |
HEAD | Запрашивает ресурс без тела |
POST | Добавляет контент на существующий веб-ресурс |
PUT | Изменяет существующий веб-ресурс |
DELETE | Удаляет указанный ресурс |
TRACE | Показывает изменения в веб-ресурсе |
OPTIONS | Показывает доступные методы HTTP для URL |
CONNECT | Преобразование соединения запроса в прозрачный туннель TCP/IP |
PATCH | Частично изменяет веб-ресурс |
⚓ Выполнение POST-запроса с помощью Curl [Практические примеры]
HTTPie
Конечная цель HTTPie – сделать взаимодействие CLI с веб-сервисами удобным для пользователя.
Этот инструмент предоставляет HTTP-команду для отправки запросов с использованием естественного синтаксиса.
см. подробнее:
HTTPie – современный HTTP-клиент, похожий на команды Curl и Wget
Fiddler
Fiddler – это кроссплатформенный прокси-сервер для отладки веб-сеансов.
С его помощью можно манипулировать веб-сессиями, проверять трафик HTTPS и отслеживать трафик между вашим компьютером и Интернетом.
Вы можете установить Fiddler на Windows, macOS и Linux. Это, вероятно, самый популярный инструмент для отладки трафика.
см. подробнее:
⛕ Использование Fiddler для захвата трафика VirtualBox
RESTer
RESTer доступен в качестве расширения для Google Chrome и Firefox.
Основные моменты
- Заголовки авторизации с аутентификацией Basic или Auth2
- Просмотр истории запросов
- Выполнение запросов с любым методом, URL, телом и пользовательскими заголовками
- Тестирование и отладка API
Paw
Paw – это полнофункциональный HTTP-клиент, который позволяет отправлять все виды HTTP-запросов.
С помощью Paw вы можете тестировать свои API, а также изучать новые.
Paw создан исключительно для macOS и обладает простыми в использовании функциями.
Вы можете импортировать и генерировать swagger, RAML и т.д., и он поддерживает схему JSON.
Основные моменты
- Поддерживает множество аутентификаций, таких как basic, OAuth, hawk, digest
- Динамические значения
- Среды
- Расширения на основе java-script
- Куки и манипуляции с сессиями
Requester
Requester – это надежный клиент, сочетающий в себе возможности HTTPie, Postman и Paw.
Он работает только с редактором Sublime Text.
Основные моменты
- Поддерживает JSON
- Коллекции и история запросов
- Цветной вывод с подсветкой синтаксиса
- Современный пользовательский интерфейс
- Cookies, пользовательские заголовки, тело запроса и параметры запроса легко настраиваются.
- Поддержка GraphQL
Postman
Постоянно работаете с API?
Вы влюбитесь в Postman.
Postman – бесспорно, один из самых популярных HTTP-клиентов, используемых для отладки веб-приложений.
Он позволяет быстрее и проще разрабатывать API.
Основные моменты
- Мощный GUI с удобным интерфейсом
- История запросов
- Автоматизированное тестирование с помощью бегущей строки коллекции
- Гибкий мониторинг API
- Поддержка REST, GraphQL, SOAP
- Поддержка нескольких полезных нагрузок, включая JSON и HTML
💉 Astra – автоматизированное тестирование безопасности для REST API
cURL
cURL – это инструмент командной строки, который используется для отправки данных с помощью синтаксиса URL.
Хорошо, что cURL по умолчанию установлен на большинстве операционных систем с поддержкой UNIX.
Он поддерживает множество протоколов, включая FTP, LDAP, POP3, SMTP, GOPHER, IMAP, HTTP, HTTPS и SCP.
см. также:
- 🖧 Как установить тайм-аут в команде cURL
- 🖧 Curl загружает HTML вместо реального Zip-файла? Вот что нужно сделать
- 🐳 Как опросить сокет Docker с помощью curl
- 🖧 В чем разница между curl и Wget?
- 🖧 Как выполнять несколько запросов curl параллельно
- 🖧 Как использовать curl для получения общедоступного IP-адреса
- 🔑 Как игнорировать ошибки недостоверенных и самоподписанных сертификатов в ssl-соединениях с curl
Charles Proxy
Как видно из названия, Charles proxy – это HTTP и обратный прокси.
Он работает путем маршрутизации локального трафика через него.
Вы можете использовать Charles для SSL-проксирования, дросселирования полосы пропускания, отладки AJAX, точек останова и многого другого.
Whistle
Whistle – это кроссплатформенный инструмент отладки на базе NodeJS для захвата и манипулирования HTTP, HTTPS, WebSocket и TCP трафиком.
Сначала необходимо установить NodeJS, а затем Whistle с помощью npm.