Знакомство с протоколом HTTP #
HTTP-приложения #
Презентацию можно посмотреть по ссылке.
Видео-запись на Rutube
HTTP-протокол #
Презентацию можно посмотреть по ссылке.
Видео-запись на Rutube
URI-пути #
Презентацию можно посмотреть по ссылке.
Видео-запись на Rutube
Знакомство с библиотекой http4k #
Презентацию можно посмотреть по ссылке.
Видео-запись на Rutube
Документация #
- Mozilla Developer Network, Изучение веб-разработки
- Mozilla Developer Network, протокол HTTP
- Официальный сайт библиотеки http4k
- Официальная документация на библиотеку http4k
- Быстрый старт при использовании http4k
- Варианты HTTP-клиентов
Задача № 1. Скачивание HTML-документа #
Результаты работы приложения выводятся в стандартный поток вывода.
Реализуйте консольное приложение, которое скачивает HTML-документ.
В качестве аргументов приложение получает два аргумента:
- URI HTML-документа, который необходимо скачать.
- Путь к каталогу, в который необходимо сохранить HTML-документ.
Для реализации приложения необходимо подключить библиотеку http4k-core и выбранную реализацию клиента.
Если соединение установлено и ответ получен, приложение должно сохранить
полученный документ в файле ЦЕЛЕВОЙ КАТАЛОГ/ИМЯ ДОМЕНА.html, где
ИМЯ ДОМЕНА — имя хоста из запрошенного URI, например lms.crafted.su.
В качестве тестов можно воспользоваться адресами:
Задача № 2. Обработка несуществующего пути #
Доработайте предыдущее приложение, чтобы оно обрабатывало ситуацию, при которой указанный адрес не существует. Для этого после получения ответа сначала необходимо оценить статус ответа. Необходимо сохранять файл только в том случае, если код ответа — от 200 до 299.
В качестве тестов воспользуйтесь следующими адресами:
- http://lms.crafted.su/unknown-path — сервер отвечает кодом 404, файл сохранять нельзя;
- http://unknown.crafted.su — имя хоста не разрешается, ответ не получен, приложение должно завершиться с понятным сообщением об ошибке.
Обратите внимание, что в первом случае ответ получен и анализируется код ответа, а во втором случае запрос завершается ошибкой соединения.
Задача № 3. Скачивание и обработка JSON-документа #
Скачайте следующий JSON-документ с помощью HTTP-клиента, извлеките из него список треугольников и отобразите статистику.
Документ содержит массив объектов со следующими полями:
sideA,sideB,sideC— длины сторон треугольника, целые числа;borderColor— цвет границы треугольника, строка.
Для получения массива объектов используйте библиотеку Jackson
(ObjectMapper.readValue).
Сначала необходимо вывести статистику по цветам границы треугольника. Список цветов должен быть отсортирован лексикографически.
Пример вывода:
Статистика по цветам:
* GREEN: 1
* RED: 15Аналогично выводится статистика по периметрам, диапазон указывается в формате
НАЧАЛО-КОНЕЦ:
Статистика по периметрам:
* 0-100: 2
* 101-200: 17Диапазоны выводятся в порядке возрастания. Приведённые числа — пример, а не
данные из triangles.json.
Затем необходимо вывести статистику по длине периметров треугольников по промежуткам: от 0 до 100, от 101 до 200, …, от 3801 до 3900. Периметром считается сумма длин трёх сторон. Гарантируется, что периметр треугольников не больше 3900. Не надо выводить промежуток, в котором не оказалось треугольников.
JSON-документ доступен по ссылке и по адресу https://lms.crafted.su/web-app-development/2026-2-it-3/course/02-http-introduction/02-basic-http-server/triangles.json.