# Гришанов Матвей Сергеевич – WEB Basic Практическая работа 1. Введение в Web технологии
[toc]
## Установка и настройка Linux ubuntu 20.04
Создаём новую машину в VMware и производим процесс установки операционной системы ubuntu 20.04.



:::success
:star: Установка успешно завершена!
:::
## Настройка подключения к репозиториям **docker**
Скачиваем апдейты.
```
apt-get update
```

---
После этого устанавливаем ca-certificates \ curl \ gnupg \ lsb-release.
```
sudo apt-get install \ ca-certificates \ curl \ gnupg \ lsb-release
```

---
Добавляем официальный GPG ключ докера.
`mkdir -p /etc/apt/keyrings`


`curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg`

---
Настраиваем репозиторий.
```
echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
```

---
Снова делаем апдейт. Затем устанавливаем последнюю версию Docker Engine.
```
apt-get update
```

`sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin`

---
## Установка **Docker CE**
`sudo apt-get install docker-ce -y`

Проверяем работу docker.
`systemctl status docker`

---
## Установка веб-приложения **https://hub.docker.com/r/bkimminich/juice-shop**
Устанавливаем WEB-приложение.
```
docker pull bkimminich/juice-shop
```

```
docker run --rm -p 3000:3000 bkimminich/juice-shop
```

---

:::success
:star: Juice-shop успешно запущен!
:::
---
## Изучение запросов браузера к приложению и форме регистрации пользователей
Изучив запросы браузера к приложению и форме регистрации пользователей, можно сделать вывод, что основные методы формирования этих запросов -- GET и POST.

При регистрации также формируется POST запрос со значениями:
```
Status: 201
File: /api/Users/
```

---
Если использовать неверный пароль, то также будет сформирован POST запрос:
```
Status: 401
File: login
```

---
Если использовать верный пароль, то будет сформирован POST запрос:
```
Status: 200
File: login
```

---
Также при регистрации сформировался POST запрос для секретного вопроса:
```
Status: 201
File: /api/SecurityAnswers/
```

---
## Формирование запроса к приложению через **curl**
`curl -I "192.168.116.141:3000"`

---
## Формирование запроса к приложению через **powershell**
```
Invoke-WebRequest -Uri 192.168.116.141:3000
```

---
## Изучение ответа приложения и его парсинг с помощью утилит **jq**
Первым делом устанавливаем jq.
`sudo apt-get install jq`

`curl localhost:3000/api/Challenges | jq`

---