ИКБО-01-21 ИсаеваАВ ПР3 НиАСПО. Отчет по практической работе 3 по дисциплине Настройка и администрирование сервисного программного обеспечения
Скачать 1.62 Mb.
|
Институт Информационных технологий (ИТ) Кафедра инструментального и прикладного программного обеспечения (ИиППО)
Москва 2023 СОДЕРЖАНИЕВВЕДЕНИЕ 4 ВЫПОЛНЕНИЕ РАБОТЫ 5 1.Проверить версию команды curl 5 2.Открыть 10 URL различных ресурсов и ознакомиться с полученными данными. 5 3.Осуществить загрузку файла с помощью команды curl с оригинальным именем, опция -O Скачать одной командой 3 файла с опцией -О. 8 4. Осуществить загрузку с 3 ftp-серверов (например, производителей компьютерного оборудования HP, Asus, MSI, Lenovo, Dell) файлы (например, драйверы) 9 5.Осуществить загрузку файла с помощью команды curl и сохраните файл под другим именем, опция -o. Скачайте три файла с опцией -o для сохранения файлов с определенным именем 10 6.Сохранить какое-либо изображение используя опцию -OL Сохраните 3 изображения используя опцию -OL (можно сохранить каждое изображение по отдельности) 10 7. Посмотреть для 5 URL какие файлы cookie загружаются на компьютер 11 8. Выполнить команду curl с опцией -L. Сравнить вывод без этой опции. Объяснить полученный результат вывода 12 9.Получить заголовки сайтов 3 URL командой curl, опция -I 13 10.Составить (а при наличии тестового сервера и отправить) POST-запросы используя команду curl, в виде списка имя=значение, и в виде JSON, для 3 URL, опция -d 13 11.Использовать авторизацию для URL, опция -u 14 12.Перенаправить запрос с localhost на URL (эквивалентно прописыванию в /etc/hosts), сделать для 3 URL. Для каждого URL свое перенаправление отдельной командой., опция --resolve 15 13.Вывести время работы команды для конкретного URL. Повторить команду 3 раза на одном URL. Выполнить такую же операцию для 5 различных URL, опция -w 16 14.Для 3 URL осуществить имитацию определенного браузера, опция -A 19 15.Отправить файлы cookie при скачивании дистрибутива. 20 16. Выполнить команду по загрузке rpm-файла Oracle Java JDK jdk10.0.2_linux-x64_bin.rpm без отправки cookie. Сравнить скачанные файлы и объяснить полученный результат 21 17. Самостоятельно выбрать ранее не использовавшиеся 5 опций команды curl. Выполнить команды и объяснить полученный результат. 21 ЗАКЛЮЧЕНИЕ 22 СПИСОК ИСОЛЬЗОВАННЫХ ИСТОЧНИКОВ 24 ВВЕДЕНИЕОсновное преимущество curl — это его удобство использования и гибкость. Curl поддерживает большое количество опций и настроек для тонкой настройки запросов и обработки ответов. Так, например, с помощью curl можно отправлять запросы различными методами (GET, POST, PUT, DELETE), устанавливать различные заголовки запросов и ответов, управлять куками и авторизацией, а также многими другими параметрами. Curl может быть использован для автоматизации процессов, связанных с обменом данными через Интернет. Например, с помощью curl можно скачивать файлы и обрабатывать их, перенаправлять запросы с одного сервера на другой, создавать скрипты для автоматической проверки работоспособности сайтов и сервисов. Curl часто используется для тестирования и отладки веб-сервисов и API. Например, при разработке API можно использовать curl для проверки правильности работы API, а также для создания автоматических тестов, которые будут выполняться при каждом обновлении API. Curl также поддерживает многопоточность, что позволяет ускорить выполнение множества запросов к серверам. В частности, curl может выполнять несколько запросов параллельно, что позволяет ускорить процесс обмена данными. Кроме того, curl имеет широкую поддержку среди операционных систем. Curl работает на большинстве платформ, включая Linux, macOS, Windows и другие. ВЫПОЛНЕНИЕ РАБОТЫПроверить версию команды curlНапример, curl –version Рисунок 1 – Версия curl Открыть 10 URL различных ресурсов и ознакомиться с полученными данными.Например, curl mail.ru curl rambler.ru curl google.com Рисунок 2 – Открытие ресурсов часть 1 Рисунок 3 – Открытие ресурсов часть 2 Рисунок 4 – Открытие ресурсов часть 3 Осуществить загрузку файла с помощью команды curl с оригинальным именем, опция -O Скачать одной командой 3 файла с опцией -О.Рисунок 5 – Загрузка файла Рисунок 6 – Загрузка 3 файлов одной командой Осуществить загрузку с 3 ftp-серверов (например, производителей компьютерного оборудования HP, Asus, MSI, Lenovo, Dell) файлы (например, драйверы)Например, curl -O ftp://ftp.hp.com:21/pub/softpaq/sp40001/sp40001.cva Возможно, для ftp потребуется указывать логин, пароль Например, curl -u anonymous:anonymous -O ftp://yourftpserver/yourfile.tar.gz anonymous – стандартный логин и пароль для анонимного входа на ftpсервер Рисунок 7 – Загрузка файлов с ftp Осуществить загрузку файла с помощью команды curl и сохраните файл под другим именем, опция -o. Скачайте три файла с опцией -o для сохранения файлов с определенным именемРисунок 8 – Загрузка файлов с изменением имени файлов Сохранить какое-либо изображение используя опцию -OL Сохраните 3 изображения используя опцию -OL (можно сохранить каждое изображение по отдельности)Рисунок 9 – Загрузка изображения Рисунок 10 – Загрузка 3 изображений Посмотреть для 5 URL какие файлы cookie загружаются на компьютерНапример, curl --cookie-jar cnncookies.txt https://www.cnn.com/index.html -O Просмотреть сформированные cookie файлы можно с помощью команды type Например, type cnncookies.txt Рисунок 11 – Просмотр загрузки куки Рисунок 12 – Просмотр загрузки куки (5 сайтов) Выполнить команду curl с опцией -L. Сравнить вывод без этой опции. Объяснить полученный результат выводаНапример, curl -L google.com Рисунок 13 – Команда curl с -L и без Как мы видим, опция -L ( --location ) в команде curl указывает, что при перенаправлении запроса (например, при переходе на другую страницу) curl должен следовать за перенаправлением и отправлять запрос на новый URL. Если опция -L не используется, то curl просто возвращает ответ сервера, который инициировал перенаправление. Получить заголовки сайтов 3 URL командой curl, опция -IРисунок 14 – Команда curl с -I 10.Составить (а при наличии тестового сервера и отправить) POST-запросы используя команду curl, в виде списка имя=значение, и в виде JSON, для 3 URL, опция -dНапример, curl -d "param1=test1¶m2=test2" http://test.com (ключ=значение) curl -d '{"param1":"test1","param2":"test2"}' \http://www.test.com (JSON) curl -d "param1=test1¶m2=test2" http://test.com curl -d "param1=test1" http://goodle.com curl -d "param1=test1¶m2=test2¶m3=test3" http://vk.com curl -d '{"param1":"test1","param2":"test2"}' http://goodle.com curl -d '{"param1":"test1","param2":"test2"}' http://www.test.com curl -d '{"p":"test","param2":"test2", "param1":"test1"}' http://www.vk.com Рисунок 15 – Составление запроса (ключ=значение) Рисунок 16 – Составление запроса (JSON) 11.Использовать авторизацию для URL, опция -uНапример, curl -u Рисунок 17 –Авторизация часть 1 12.Перенаправить запрос с localhost на URL (эквивалентно прописыванию в /etc/hosts), сделать для 3 URL. Для каждого URL свое перенаправление отдельной командой., опция --resolveНапример, curl --resolve www.test.com:80:localhost http://www.test.com/ Рисунок 18 – Перенаправление часть 1 Рисунок 19 – Перенаправление часть 2 Рисунок 20 – Перенаправление часть 3 13.Вывести время работы команды для конкретного URL. Повторить команду 3 раза на одном URL. Выполнить такую же операцию для 5 различных URL, опция -wНапример, curl -w "%{time_total}\n" -o /dev/null -s www.mail.ru Рисунок 21 – Тайминг 14.Для 3 URL осуществить имитацию определенного браузера, опция -AМожет понадобиться в случае, если удаленный сервер может быть настроен так, чтобы блокировать пользовательский агент (браузер) или возвращать различное содержимое в зависимости от устройства посетителя и браузера Например, curl -A "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0" https://getfedora.org/ Рисунок 22 – Отправка запроса с эмулированием браузера часть 1 Рисунок 23 – Отправка запроса с эмулированием браузера часть 2 Рисунок 24 – Отправка запроса с эмулированием браузера часть 3 15.Отправить файлы cookie при скачивании дистрибутива.По умолчанию при запросе ресурса с помощью curl файлы cookie не отправляются и не сохраняются. Чтобы отправить файлы cookie на сервер, необходимо использовать опцию -b за которой следует имя файла, содержащего файлы cookie, или строку. Например, чтобы загрузить rpm-файл Oracle Java JDK jdk-10.0.2_linux-x64_bin.rpm необходимо передать файл cookie с именем oraclelicense со значением a curl -L -b "oraclelicense=a" -O http://download.oracle.com/otnpub/java/jdk/10.0.2+13/19aef61b38124481863b1413dce1855f/jdk10.0.2_linux-x64_bin.rpm Рисунок 25 – Загрузка с отправкой куки 16. Выполнить команду по загрузке rpm-файла Oracle Java JDK jdk10.0.2_linux-x64_bin.rpm без отправки cookie. Сравнить скачанные файлы и объяснить полученный результатРисунок 26 – Загрузка без куки Рисунок 27 – Результат загрузок Как мы видим, когда отправляется запрос с помощью curl без использования cookie, то каждый запрос обрабатывается независимо, как новый запрос, и сервер может не распознать его как запрос от того же пользователя, который отправлял предыдущие запросы. Если сервер использует механизм авторизации на основе cookie, то это может привести к тому, что вам будет необходимо повторно вводить учётные данные при каждом запросе. 17. Самостоятельно выбрать ранее не использовавшиеся 5 опций команды curl. Выполнить команды и объяснить полученный результат.Вывод ошибки при скачивании вместо загрузки страницы с ошибкой. Рисунок 28 - Опция -f Строка прогресса загрузки. Рисунок 28 - Опция -# Включение заголовков в ответ команды Рисунок 29 - Опция -I Ограничение скорости загрузки Рисунок 30 - Опция -z Использование прокси сервер для загрузки файлов Рисунок 31 - Опция -х ЗАКЛЮЧЕНИЕВ ходе данной практической работы был изучен функционал команды curl, рассмотрены основные опции и их синтаксис. Также была протестирована работа сочетания различных опций в ряде ситуаций и для различных сайтов. В целом, команда curl очень полезна для отправки запросов из командной строки и может быть использована для широкого спектра задач СПИСОК ИСОЛЬЗОВАННЫХ ИСТОЧНИКОВWalker, T. The Curl Manual / T. Walker. — curl.haxx.se, 2022. — 250 с. — Текст: электронная книга (дата обращения: 04.03.2023). Gonzalez, D. Curl Essentials: Mastering the World's Most Powerful Command-Line Tool / D. Gonzalez. — O'Reilly Media, 2021. — 264 с. — ISBN 978-1492085332. — Текст: электронная книга (дата обращения: 04.03.2023). Bartholomew, D. Using cURL for Command Line Data Transfer / D. Bartholomew. — Packt Publishing, 2020. — 162 с. — ISBN 978-1800201631. — Текст: электронная книга (дата обращения: 04.03.2023). Seiwert, A. HTTP with cURL / A. Seiwert. — APress, 2019. — 323 с. — ISBN 978-1484242266. — Текст: электронная книга (дата обращения: 04.03.2023). Gregersen, D. Command Line Tools: Unleash the Power of the Linux Command Line! / D. Gregersen. — Amazon Digital Services LLC, 2021. — 105 с. — Текст: электронная книга (дата обращения: 04.03.2023). |