Дисклеймер: в этом отчёте скриншоты не отображаются напрямую.
Вы можете найти все изображения в папкеscreenshotsрепозитория, соответствующие примерам GET и POST запросов через CLI и GUI-инструменты.
Цель работы
Изучить структуру HTTP-запросов и ответов, освоить отправку запросов различными инструментами и получить практический опыт работы с публичными API.
Ход работы
Отправка GET-запроса через Telnet / netcat
Описание: ручная отправка HTTP-запроса на публичный веб-сервер через CLI.
Задачи: изучить низкоуровневую структуру HTTP-запроса и ответа.
Инструменты: Telnet, netcat.
Пример запроса через netcat:
nc jsonplaceholder.typicode.com 80
GET /posts/1 HTTP/1.1
Host: jsonplaceholder.typicode.com
Результат: получен JSON с данными поста:
{
"userId": 1,
"id": 1,
"title": "sunt aut facere repellat provident occaecati excepturi optio reprehenderit",
"body": "quia et suscipit..."
}
Скриншот:

Отправка POST-запроса через netcat
Описание: отправка POST-запроса с JSON-телом на публичный API. Задачи: передача данных в теле HTTP-запроса, работа с заголовками. Инструменты: netcat.
Пример запроса через netcat:
nc jsonplaceholder.typicode.com 80
После подключения вводим вручную HTTP-запрос:
POST /posts HTTP/1.1
Host: jsonplaceholder.typicode.com
Content-Type: application/json
Content-Length: 59
{"title":"Моя первая статья","body":"Текст статьи","userId":1}
Пример данных:
{
"title": "Моя первая статья",
"body": "Текст статьи",
"userId": 1
}
Результат: сервер принял данные и вернул JSON с присвоенным ID:
{
"title": "Моя первая статья",
"body": "Текст статьи",
"userId": 1,
"id": 101
}
Скриншот:

Отправка запросов с помощью cURL
Описание: выполнение GET и POST запросов к API через CLI. Задачи: освоить синтаксис cURL, работу с заголовками и JSON. Инструменты: cURL.
GET-запрос:
curl https://jsonplaceholder.typicode.com/posts/1
Скриншот:

POST-запрос:
curl -X POST https://jsonplaceholder.typicode.com/posts \
-H "Content-Type: application/json" \
-d '{"title":"Моя первая статья","body":"Текст статьи","userId":1}'
Скриншот:

Использование GUI-инструмента
Получение курса валют через API Банка России
Описание: выполнение GET-запроса к XML API Банка России для получения курса валюты за выбранный период. Задачи: работа с публичным API, параметрами запроса и XML-ответом. Инструменты: Postman / Insomnia / HTTPie Desktop.
Пример запроса:
GET https://www.cbr.ru/scripts/XML_daily.asp?date_req=11/01/2026
Пример XML-ответа:
<ValCurs Date="11.01.2026" name="Foreign Currency Market">
<Valute ID="R01235">
<NumCode>840</NumCode>
<CharCode>USD</CharCode>
<Nominal>1</Nominal>
<Name>Доллар США</Name>
<Value>74,32</Value>
</Valute>
</ValCurs>
Скриншот:

Выводы
В ходе работы были изучены основы протокола HTTP и реализованы GET и POST запросы с использованием различных инструментов. Работа позволила на практике увидеть различия между низкоуровневым и высокоуровневым взаимодействием с HTTP, освоить синтаксис cURL и работу с GUI-инструментами, а также закрепить понимание клиент–серверной архитектуры.