- cURL / curl
- Открытый командный инструмент и библиотека libcurl для отправки HTTP/HTTPS/FTP и других запросов по URL из командной строки, самый популярный инструмент разработчика для отладки API.
- HTTP метод
- Действие HTTP запроса, распространённые: GET (чтение), POST (создание), PUT (полное обновление), PATCH (частичное обновление), DELETE (удаление), HEAD (получение заголовков), OPTIONS (запрос возможностей сервера).
- Заголовок запроса (Header)
- Пары ключ-значение метаданных в HTTP запросе, такие как Content-Type, Authorization, User-Agent, Cookie, Accept и т.д., указываются в curl через -H/--header.
- Тело запроса (Body)
- Часть данных HTTP запроса, часто используется в POST/PUT/PATCH, указывается в curl через -d/--data/--data-binary/-F, распространённые форматы: JSON, form-urlencoded, multipart/form-data.
- Content-Type
- Заголовок запроса/ответа, указывающий медиа тип body. application/json означает JSON, application/x-www-form-urlencoded означает URL-кодированную форму, multipart/form-data означает форму для загрузки файлов.
- Basic Auth
- Базовая HTTP авторизация, передаёт имя пользователя и пароль через заголовок Authorization: Basic base64(user:pass), в curl указывается через -u user:pass.
- Bearer Token
- Авторизация на основе токена, передаётся через заголовок Authorization: Bearer <token>, часто используется в JWT/OAuth2.
- User-Agent
- Заголовок запроса, идентифицирующий тип клиента (браузер/бот/скрипт), curl по умолчанию отправляет «curl/версия», многие сайты блокируют не-браузерные UA, часто указывается через -A.
- Cookie
- Пары ключ-значение, отправляемые сервером через Set-Cookie и возвращаемые браузером в последующих запросах через заголовок Cookie, используются для поддержания сессии. curl -b отправляет Cookie, -c сохраняет Cookie.
- Referer
- Заголовок запроса, указывающий URL страницы-источника текущего запроса, некоторые проверки хотлинкинга/CSRF проверяют его. curl -e устанавливает.
- Перенаправление (3xx)
- Когда сервер возвращает коды статуса 301/302/303/307/308, указывая браузеру перейти на новый URL. curl по умолчанию не следует, добавьте -L/--location для следования.
- --compressed
- Опция curl, автоматически добавляет заголовок Accept-Encoding: deflate, gzip и автоматически распаковывает ответ. Без неё ответ может быть сжатыми данными с кракозябрами.
- -k/--insecure
- Опция curl, пропускает проверку HTTPS сертификата, используется только в тестовых окружениях с самоподписанными сертификатами, запрещено в продакшене.
- fetch API
- Нативный браузерный JavaScript API для HTTP запросов, возвращает Promise, поддерживается всеми современными браузерами.
- Axios
- Популярная HTTP клиентская библиотека на основе Promise, универсальная для браузера и Node.js, автоматическая JSON сериализация, интерсепторы, таймаут и отмена.
- OkHttp
- Java/Android HTTP клиентская библиотека от компании Square, высокопроизводительная, с поддержкой HTTP/2, пулом соединений, прозрачным GZIP.
- HttpClient (.NET)
- Рекомендуемый HTTP клиент для C#/.NET, пространство имён System.Net.Http, стандартный API в .NET Core/.NET 5+.
- Invoke-RestMethod
- Встроенный в PowerShell 3.0+ командлет для HTTP запросов, автоматически парсит JSON/XML ответы в объекты PowerShell.